Matplotlib チュートリアル - 折れ線グラフ
胡金庫
2024年2月15日
基本的なチャートタイプである折れ線チャートのプロットから始めます。plot
は直線や曲線のような線を簡単にプロットでき、色、幅、マーカーサイズなどの設定も異なります。
Matplotlib の直線
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 9, 10)
y = 2 * x
plt.plot(x, y, "b-")
plt.show()
y = 2 * x
の行をプロットします。x は 0〜9 の範囲です。
plt.plot(x, y, "b-")
x
と y
のデータを b
(青)と -
(実線)の線スタイルでプロットします。
Matplotlib 曲線
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
y = np.sin(x)
plt.plot(x, y, "r--")
plt.show()
正弦波を生成し、赤色-r
と破線---
の線スタイルを持っています。
Matplotlib ラインタイプ
plt.plot()
関数の異なる入力引数を使用して、幅、色、ラインスタイルなどのラインタイプを変更できます。
matplotlib.pyplot.plot(*args, **kwargs)
パラメーター
名前 | 説明 |
---|---|
x, y |
データポイントの水平/垂直座標 |
fmt |
フォーマット文字列。たとえば、青い実線の b- 。 |
** kwargs
物件 | 説明 |
---|---|
color または c |
matplotlib の色 |
figure |
Figure インスタンス |
label |
対象 |
linestyle または ls |
[‘solid’ |
linewidth または lw |
float |
marker |
A valid marker style |
markersize または ms |
float |
xdata |
1D 配列 |
ydata |
1D 配列 |
zorder |
float |
線の色
color
引数で色に名前を付けるいくつかの方法があります。
単一文字エイリアス
The basic built-in colors have the alias as below,
エイリアス | 色 |
---|---|
b |
青い |
g |
緑 |
r |
赤 |
c |
シアン |
m |
赤紫色 |
y |
黄 |
k |
黒 |
w |
白い |
Html Hex String
次のように、有効な HTML 16 進文字列を color
パラメータに渡すことができます。
color = "#f44265"
RGB タプル
また、R,G,B
タプルを使用して色を指定することもできます。R、G、B の値は、通常の範囲 [0、255]
の代わりに、[0、1]
の範囲内にあります。
上記の html 16 進文字列で表される色の RGB
値は (0.9569、0.2588、0.3891)
です。
color = (0.9569, 0.2588, 0.3891)
線のスタイル
Matplotlib には 4つの組み込み線スタイルがあり、
線のスタイル | |
---|---|
- |
|
-- |
|
: |
|
:- |
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
for index, line_style in enumerate(["-", "--", ":", "-."]):
y = np.sin(x - index * np.pi / 2)
plt.plot(x, y, "k", linestyle=line_style, lw=2)
plt.title("Line Style")
plt.grid(True)
plt.show()
線幅
次のようにパラメーター linewidth
で行幅を指定できます
linewidth = 2 # unit is points
または単にその略語を使用して、
lw = 2
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 21)
for line_width in [0.5, 1, 2, 4, 8]:
y = line_width * x
plt.plot(x, y, "k", linewidth=line_width)
plt.title("Line Width")
plt.grid(True)
plt.show()