【第21回PYTHON講座】PYTHONで散布図を作成してみよう

PYTHON

19回では、曲線のグラフ作成を行いまいした。

【第19回PYTHON講座】PYTHONを使ってグラフを描いてみよう!!
前回はPYTHONで回路図を作成しましたが、今回はグラフを作成してみたいと思います。 何のグラフを作成するかというと、下記の交流回路での電流のグラフです。 交流回路のグラフを選んだ理由は、交流回路のレ...

今回はPYTHON散布図(さんぷず)を作成します。散布図と言うのは、点でデータをプロットしたグラフを言います。データの分布が一目で分かるので、データの偏りを判断することが出来ます。

では、早速始めてみましょう。

ライブラリ『matplotlib』、『numpy』を使用

散布図を作成する為に、『matplotlib』と『numpy』のライブラリを使用します。

matplotlib』はグラフを作成する為に使用するライブラリで、『numpy』はデータを取り扱うライブラリになります。

グラフ作成では必須のライブラリになります。

散布図を作成するプログラム

import matplotlib.pyplot as plt 
import numpy as np

plt.xlabel('x label')
plt.ylabel('y label')
plt.title('Scatter Plot')
plt.grid(True)

x=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y=np.array([20, 10, 29, 32, 45, 53, 62, 71, 86, 95, 88]) 

plt.scatter(x, y, s=70, c="blue", marker="x") 

plt.show()

上記のプログラムで下記の散布図が作成されます。では、解説していきます。

散布図

1,2行:ライブラリの導入の記述になります。

4~6行:グラフ上のラベル、タイトルを付けます。グラフを作成する上で、X軸、Y軸が何を表しているかを示すためにラベルを付けた方がいいです。また、グラフにタイトルを付けると、自分で、データ整理するのが容易になります。

7行:グリッド(補助線)の表示をするかを決めます。この文を書かない時は、グリッドが表示されません。なので、使用しない場合はFalseにする必要はなく、この文を書かないでおくことをおススメします。散布図では、偏りを見る事が多いので、グリッドは使用しないケースが多いかもしれません。

9,10行目:X軸、Y軸のデータです。通常であれば、表計算ソフトやCVSファイルでまとめられていますが、今回は分かり易くする為に、プログラム上で記載しました。

12行目:散布図を作成するコマンドになります。

plt.scatter(X軸データ, Y軸データ, プロットの大きさ, プロットする色, プロットする印)

プロットする大きさを変える事で、見やすさが変わってきます。

プロットする色を変える事で、他のデータとの見分けが出来ます。

プロットする印を変える事で、他のデータとの見分けが出来ます。今回は”x”マークでプロットしていますが、例えば、”a”でプロットしようとしても出来ません。きちんと対応したマークがあります。詳しくは、下記のmatplotlibの公式サイトをご覧ください。プロットの印(marker)を定義しない場合は、〇になります。

matplotlib.markers — Matplotlib 3.9.2 documentation

14行目:このコマンドでグラフが表示されます。

簡単ですよね!

CSVファイルからの読み込み、encodingを気を付けよう!!

次はCSVファイルから読み込む場合です。

CSVファイル

import matplotlib.pyplot as plt 
import numpy as np

data = np.genfromtxt('C:/Labo/buffer/scatterplot.csv', delimiter=',', 
names=['x', 'y'], encoding='utf_16')

plt.xlabel('x label')
plt.ylabel('y label')
plt.title('Scatter Plot')
plt.grid(True)

plt.scatter(data['x'], data['y'], s=70, c="blue", marker="x") 

plt.show()

4,5行目:numpyのgenfromtextという関数を使用します。

実際に使用する場合、この関数を応用していただきたいのですが、最後のencodingだけ気を付けて下さい。

通常windowsでcsvを作成する場合、Unicode(UTF-16)で書き込み、読み込みがされます。下記はLibreOffice CalcでCSVファイルを読み込んだ場合です。

LibreOffice CalcでCSVファイルを開いた時

現状のPYTHONのencodingは、指定をしない(デフォルトの場合)とUTF-8で読み込みされます。なので、UTF-16で保存されているCSVを読み込む場合は、encoding=’utf_16’と指定しないと、エラーになるので注意して下さい。

CSVファイルの読み込みでエラーが発生した場合は、ファイルのencodingを確認して下さい。

まとめ

いかがだったでしょうか。

個人的には、データをグラフ化する時に散布図を使用することが多かったので、今回の記事が参考になったと思われる方が多いと思っています。

是非、みなさんのデータをグラフ化してみて下さいね。

コメント

タイトルとURLをコピーしました