スポンサーリンク

csvファイルから散布図を作成

一番基本的な書き方になります。

参考:numpyでcsvを読み込みmatplotlibでグラフを作成

csvファイルをロードして、X,Yの値を指定します。

下記がサンプルコードになります。

$ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]

plt.scatter(x, y1)
plt.show()

下記が実行結果になります。
matplotlib-scatter-01

スポンサーリンク

同じ散布図内に複数系列プロット

同じ散布図内に複数系列プロットする場合です。
plt.scatter()で、複数分だけ続けて指定します。

下記がサンプルコードになります。

$ cat sample2.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1)
plt.scatter(x, y2)
plt.scatter(x, y3)
plt.show()

下記が実行結果になります。
matplotlib-scatter-複数系列プロット

プロットする点の色を指定

plt.scatter()のパラメータで指定します。

例えば、下記のように設定します。
c='m' #マゼンタ
c='b' #青
c='r' #赤

下記がサンプルコードになります。

$ cat sample3.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1, c='m')
plt.scatter(x, y2, c='b')
plt.scatter(x, y3, c='r')
plt.show()

下記が実行結果になります。
matplotlib-scatter-色を指定

プロットする点の種類(marker)を指定

パラメータ(maker)を設定することで、プロットする点の種類(marker)を指定できます。

下記がサンプルコードになります。

$ cat sample4.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1, c='m', marker='*')
plt.scatter(x, y2, c='b', marker='x')
plt.scatter(x, y3, c='r', marker='s')
plt.show()

下記が実行結果になります。
matplotlib-scatter-maker

ラベル名を指定

パラメータ(label)を設定することで、ラベル名を指定できます。

参考:matplotlibでlabelが表示されない時にチェックすること

下記がサンプルコードになります。

$ cat sample5.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1, c='m', marker='*', label='label1')
plt.scatter(x, y2, c='b', marker='x', label='label2')
plt.scatter(x, y3, c='r', marker='s', label='label3')
plt.legend()
plt.show()

下記が実行結果になります。
matplotlib-scatter-label

グリッド線を表示

plt.grid(True) を実行することで、グリッド線を表示できます。

下記がサンプルコードになります。

$ cat sample6.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1, c='m', marker='*', label='label1')
plt.scatter(x, y2, c='b', marker='x', label='label2')
plt.scatter(x, y3, c='r', marker='s', label='label3')
plt.legend()
plt.grid(True) 
plt.show()

下記が実行結果になります。
matplotlib-scatter-grid

タイトルを設定

plt.title('Title')でタイトルを表示できます。

下記がサンプルコードになります。

$ cat sample7.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import matplotlib.pyplot as plt

npArray = np.loadtxt("in.txt", delimiter = ",")

x = npArray[:, 0]
y1 = npArray[:, 1]
y2 = npArray[:, 2]
y3 = npArray[:, 3]

plt.scatter(x, y1, c='m', marker='*', label='label1')
plt.scatter(x, y2, c='b', marker='x', label='label2')
plt.scatter(x, y3, c='r', marker='s', label='label3')
plt.legend()
plt.grid(True)
plt.title('Title')
plt.show()

下記が実行結果になります。
matplotlib-scatter-title

スポンサーリンク