Python 3 – Matplotlib折れ線グラフ-Pythonチュートリアル

Python

目次

折れ線グラフは、matplotlibを使用してすぐに使用できます。 折れ線グラフに複数の線を入れたり、色を変更したり、線の種類を変更したりすることができます。

Matplotlibは、プロット用のPythonモジュールです。 折れ線グラフは、作成できる多くのグラフタイプの1つです。

関連コース: Matplotlibの例とビデオコース

折れ線グラフの例

折れ線グラフ

最初にmatplotlibとnumpyをインポートします。これらは、グラフ化に役立ちます。
plot(x、y)メソッドを使用して、折れ線グラフを作成できます。

1
2
3
4
5
6
7
8
9
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
print(x)
y = 2*x + 1

plt.plot(x, y)
plt.show()

折れ線グラフ

曲線

plot()メソッドは、他のタイプの折れ線グラフでも機能します。 直線である必要はありません。yは任意のタイプの値を持つことができます。

1
2
3
4
5
6
7
8
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y = 2**x + 1

plt.plot(x, y)
plt.show()

折れ線グラフ

例をダウンロード

ラベルのある線

何を見ているのかを知るには、メタデータが必要です。 ラベルはメタデータの一種です。 それらはチャートが何であるかを示しています。 チャートには、xラベル、yラベル、およびタイトルがあります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1

plt.figure()
plt.plot(x, y1)

plt.xlabel("I am x")
plt.ylabel("I am y")
plt.title("With Labels")

plt.show()

プロットラベル付き折れ線グラフ

複数行

プロットには複数の線を含めることができます。 別の行を追加するには、plot(x、y)関数をもう一度呼び出します。 以下の例では、チャートにプロットされているy(y1、y2)の2つの異なる値があります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1

plt.figure(num = 3, figsize=(8, 5))
plt.plot(x, y2)
plt.plot(x, y1,
color='red',
linewidth=1.0,
linestyle='--'
)

plt.show()

複数の線をプロットする

点線

下の画像のように、線はドットの形にすることができます。 plot(x、y)を呼び出す代わりに、scatter(x、y)メソッドを呼び出します。 scatter(x、y)メソッドを使用して、ポイントをチャートに(ランダムに)プロットすることもできます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import matplotlib.pyplot as plt
import numpy as np

n = 1024
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
T = np.arctan2(X, Y)

plt.scatter(np.arange(5), np.arange(5))

plt.xticks(())
plt.yticks(())

plt.show()

点線

例をダウンロード

ラインティック

プロットの目盛りを変更できます。 それらをx軸、y軸に設定するか、色を変更することもできます。 線はより太く、アルファ値を持つことができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y = 2*x - 1

plt.figure(figsize=(12, 8))
plt.plot(x, y, color='r', linewidth=10.0, alpha=0.5)

ax = plt.gca()

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor='y', edgecolor='None', alpha=0.7))

plt.show()

ラインティック

漸近線との線

漸近線をプロットに追加できます。 これを行うには、plt.annotate()を使用します。 下のプロットにも点線があります。 コードをいじって、どのように機能するかを確認できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1

plt.figure(figsize=(12, 8))
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

ax = plt.gca()

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))


x0 = 1
y0 = 2*x0 + 1

plt.scatter(x0, y0, s = 66, color = 'b')
plt.plot([x0, x0], [y0, 0], 'k-.', lw= 2.5)

plt.annotate(r'$2x+1=%s$' %
y0,
xy=(x0, y0),
xycoords='data',

xytext=(+30, -30),
textcoords='offset points',
fontsize=16,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')
)

plt.text(0, 3,
r'$This is a good idea. mu sigma_i alpha_t$',
fontdict={'size':16,'color':'r'})

plt.show()

線の漸近線

テキストスケールの行

数値スケールである必要はありません。 スケールには、以下の例のようなテキストの単語を含めることもできます。 plt.yticks()では、テキスト値を含むリストを渡すだけです。 これらの値は、y軸に対して表示されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1

plt.figure(num = 3, figsize=(8, 5))
plt.plot(x, y2)

plt.plot(x, y1,
color='red',
linewidth=1.0,
linestyle='--'
)

plt.xlim((-1, 2))
plt.ylim((1, 3))

new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],
[r'$really bad$', r'$bad$', r'$normal$', r'$good$', r'$readly good$'])

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

plt.show()

テキストスケールの行

matplotlibを初めて使用する場合は、 それなら私はこのコースを強くお勧めします。

Hope this helps!

Source link

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です