[Matplotlib] 直線と折れ線グラフの作成

[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()

Python 直線グラフの作成

 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()

Python 直線グラフの作成02

 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()

Python 直線グラフの作成02
 

水平線と垂直線

 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()

Python 水平線と垂直線を引く
 

折れ線グラフの作成

 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()

Python 折れ線を描画

 第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()

Matplotlib 折れ線を描く