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()
下記が実行結果になります。
同じ散布図内に複数系列プロット
同じ散布図内に複数系列プロットする場合です。
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()
下記が実行結果になります。
プロットする点の色を指定
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()
下記が実行結果になります。
プロットする点の種類(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()
下記が実行結果になります。
ラベル名を指定
パラメータ(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()
下記が実行結果になります。
グリッド線を表示
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()
下記が実行結果になります。
タイトルを設定
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()
下記が実行結果になります。
