【Matplotlib】直線グラフの作成
直線
Matplotlib で直線グラフを作成する方法は何通りかあります。たとえば、numpy.arange() で作成した x のデータを直線の式に当てはめます。
# MATPLOTLIB_STRAIGHT_LINE_01 import numpy as np import matplotlib.pyplot as plt # 6×4サイズのFigureを作成 fig = plt.figure(figsize=(6, 4)) # FigureにAxesを1つ追加 ax = fig.add_subplot(111) # 目盛線を表示 ax.grid() # x軸の範囲を設定 ax.set_xlim([-5, 5]) # -5~5まで1刻みのデータを作成 x = np.arange(-5, 6) # 直線の式を定義 y = 2*x + 1 # 直線をプロット ax.plot(x, y, color="blue") plt.show()
numpy.linspace() を使うと、非整数のデータを作成できます。
# MATPLOTLIB_STRAIGHT_LINE_02 import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize=(6, 4)) ax = fig.add_subplot(111) ax.grid() ax.set_xlim([0, 5]) ax.set_ylim([0, 8]) ax.set_xlabel("x", fontsize=14) ax.set_ylabel("y", fontsize=14) # 0~5を10分割したデータを作成 x = np.linspace(0, 5, 10) # 直線の式を定義 y = x + 2 # 直線をプロット ax.plot(x, y, color="red") plt.show()
Axes.plot([x0, x1], [y0, y1]) と記述すると、(x0, y0) から (x1, y1) まで直線が引かれます。
# MATPLOTLIB_STRAIGHT_LINE_03 import matplotlib.pyplot as plt fig = plt.figure(figsize=(6, 4)) ax = fig.add_subplot(111) ax.grid() ax.set_xlim([0, 6]) ax.set_ylim([0, 10]) ax.set_xlabel("x", fontsize=14) ax.set_ylabel("y", fontsize=14) # (0,4)から(6,9)まで直線を引く ax.plot([0, 6], [4, 9], color="sienna") plt.show()
水平線と垂直線
Axes.axhline(a) は Y = a に水平線を引きます。
Axes.axvline(a) は X = a に 垂直線 を引きます。
# MATPLOTLIB_HORIZONTAL_VERTICAL_LINE_01 import matplotlib.pyplot as plt fig = plt.figure(figsize=(6, 4)) ax = fig.add_subplot(111) ax.grid() ax.set_xlim([0, 6]) ax.set_ylim([0, 10]) ax.set_xlabel("x", fontsize=14) ax.set_ylabel("y", fontsize=14) # y=5に水平線を引く ax.axhline(5, ls="-.", color="magenta") # x=3に垂直線を引く ax.axvline(3, ls="--", color="navy") plt.show()
【Matplotlib】折れ線グラフの作成
Axes.plot() にリストや配列を1つだけ渡すと、各要素を Y値とする折れ線を描画します。Y値は要素のインデックス値となります。
# MATPLOTLIB_LINE_GRAPH_01 import matplotlib.pyplot as plt fig = plt.figure(figsize=(6, 4)) ax = fig.add_subplot(111) ax.grid() ax.set_xlim([0, 3]) ax.set_ylim([0, 18]) ax.set_xlabel("X", fontsize=14) ax.set_ylabel("Y", fontsize=14) # 2,4,8,16をY値とする折れ線を描画 ax.plot([2, 4, 8, 16], color="darkgreen") plt.show()
第1引数と第2引数に X値と Y値を指定することもできます。
# MATPLOTLIB_LINE_GRAPH_02 fig = plt.figure(figsize=(6, 4)) ax = fig.add_subplot(111) ax.grid() ax.set_xlim([0, 12]) ax.set_ylim([0, 10]) ax.set_xlabel("X", fontsize=14) ax.set_ylabel("Y", fontsize=14) # X値を設定 x = [0, 3, 5, 9, 12] # X値を設定 y = [4, 1, 2, 8, 5] # 折れ線を描画 ax.plot(x, y, color="crimson") plt.show()
コメント