Python Matplotlibで曲線の下に虹色を塗りつぶす方法
PythonのMatplotlibを使えば、fill_between() 関数を活用することで、曲線の下側の領域に虹色(7色)を重ねて塗りつぶすことができます。この記事では、実際のコード例とともにその手順をわかりやすく解説します。
実装の手順
曲線の下に虹色を塗りつぶすには、以下のステップに従います。
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 7つの虹色のリストを保持し、NumPyを使ってデータ点 x を生成するユーザー定義関数
plot_rainbow_under_curve()を作成します。 - 0〜6の範囲でループ処理を行い、各色ごとに塗りつぶし領域を少しずつずらしながら描画します。
show()メソッドを呼び出して、完成した図を表示します。
コード例
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
def plot_rainbow_under_curve():
rainbow_colors = ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red']
x = np.linspace(-5, 5, 100)
for i in range(0, 7):
plt.plot(x, x ** 2, lw=0)
plt.fill_between(x, x ** 2 + len(rainbow_colors) - i,
color=rainbow_colors[i])
plot_rainbow_under_curve()
plt.show()
コードのポイント
このコードでは、np.linspace(-5, 5, 100) によって −5 から 5 までの範囲に100個の等間隔データ点を生成しています。その後、for ループの中で fill_between() を呼び出し、曲線 x ** 2 を基準にオフセット値 len(rainbow_colors) - i を加算することで、紫・藍・青・緑・黄・橙・赤の順に帯状の領域を重ねて描画しています。これにより、曲線の下側に美しい虹色のグラデーション効果を作り出せます。
なお、plt.plot(x, x ** 2, lw=0) は線幅0で曲線自体を非表示にしているため、見た目上は塗りつぶし領域のみが表示されます。
実行結果
このコードを実行すると、放物線状の曲線に沿って、虹の7色が層状に塗りつぶされたグラフが出力されます。
-
Python MatplotlibでY軸の値(目盛りラベル)を指定する方法
PythonのMatplotlibでは、yticks()メソッドを使うことで、Y軸に表示する値や目盛りラベルを自由に指定できます。X軸の場合はxticks()を使用します。この記事では、具体的な手順とサンプルコードを通して、軸の目盛りをカスタマイズする方法を解説します。 Y軸の値を指定する手順 以下の手順で、Matplotlibのグラフに任意の目盛りラベルを設定できます。 numpyを使ってxおよびyのデータポイントを作成します。 軸に表示したい値として、文字列のリストを作成します。 xticks()メソッドとyticks()メソッドを使用し、それぞれX軸・Y軸の目盛りの位置とラベルを指定し
-
【Python】matplotlibでフォントサイズを変更する方法をわかりやすく解説
Pythonの可視化ライブラリ「matplotlib」では、plt.text()メソッドを使うことで、グラフ内に表示するテキストのフォントサイズを簡単に変更できます。この記事では、具体的な手順とサンプルコードを交えて解説します。 フォントサイズを変更する手順 グラフを作成する:plt.plot()メソッドの引数に2つのリストを渡すことで、折れ線グラフを作成できます。 テキストを追加する:plt.text()メソッドを使い、データ座標上の位置 (x, y) にテキストを配置します。fontsize引数の値を変更することで、フォントサイズを自由にカスタマイズできます。 グラフを表示する:plt.