PR

matplotlibの基本: 散布図の描画方法

matplotlib

機械学習やデータ解析において、データの可視化は不可欠です。その中でも、散布図はデータ間の関係性や分布を理解するのに役立ちます。Pythonのライブラリであるmatplotlibを使用して、散布図を描く方法について解説します。

スポンサーリンク

matplotlibとは

プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像(各種ベクトル画像形式も含む)として保存することもできる(Wiki参照)

matplotlib – Wikipedia
スポンサーリンク

インストール方法(Mac)

まずはmatplotlibをインストールする必要があります。ターミナルを開き、以下のコマンドを実行します。

pip install matplotlib
スポンサーリンク

import方法

Pythonプログラム内でmatplotlibを使用するためには、次のように宣言します。

import matplotlib.pyplot as plt
スポンサーリンク

基本のプロット

散布図を描くための基本的なソースコードは以下の通りです。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [9, 8, 7, 6, 5]

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

デフォルトの状態でよければ、これだけで散布図(ポイント)をプロットできます。

xとyの同じインデックスつまり(1,9)、(2,8)、(3,7)、(4,6)、(5,5)にプロットされています。

問題なくプロットされてますね。では、次項以降で見た目をカスタマイズしていきます。

スポンサーリンク

見た目のカスタマイズ

散布図の見た目をカスタマイズすることもできます。以下のコードでは、マーカーの色と形の変更し、凡例を設定しています。

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [9, 8, 7, 6, 5]

plt.scatter(x, y, marker='*',c='red',label='test')
plt.legend()
plt.show()

Tips:主要なカスタマイズキーワード

散布図作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。

kywd入力例備考
x,y[1,2,3,4,5] または 事前に定義したlistなどarray形式のもの
※必須
ss=5 または
x,yと同範囲のリスト(要素はサイズ)
マーカーの大きさ
指定しないと20
cc=”red” または
c=”#FFFF00″ または
c=(1.0,0,1.0)
マーカーの色
色名や16進数、RGBでの指定が可能
markermarker=”.”マーカーの形
指定しないと○
*は星形など様々指定可
alphaalpha=0.3マーカーの透明度
指定は0-1の間で行う
linewidthslinewidths=2マーカーの枠線の幅
labellabel=”label1″凡例名

色見本

color example code: named_colors.py — Matplotlib 2.0.2 documentation

マーカー見本

lines_bars_and_markers example code: marker_reference.py — Matplotlib

スポンサーリンク

見た目のカスタマイズ(目盛り線)

以下のコードでは、グリッド線を細かく指定しています。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [9, 8, 7, 6, 5]

plt.scatter(x,y, marker='s',c='red',label='test')
plt.legend()
plt.grid(True) #グリッド線追加
plt.xlabel("X-label") #X軸ラベル追加
plt.ylabel("Y-label") #Y軸ラベル追加
plt.title("TEST GRAPH") #グラフタイトル追加
plt.show()
スポンサーリンク

【応用】複数のデータセットを重ねて描画

複数のデータセットを一つのグラフに重ねて表示することも可能です。

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [9, 8, 7, 6, 5]
y2 = [5, 6, 7, 8, 9]

plt.scatter(x,y, marker='s',c='red',label='test')
plt.scatter(x,y2, marker='p',c='blue',label='test2') #追加プロット
plt.legend()
plt.grid(True)
plt.xlabel("X-label")
plt.ylabel("Y-label")
plt.title("TEST GRAPH")
plt.show()
スポンサーリンク

まとめ

本記事では、Pythonのmatplotlibライブラリを使用して散布図を描画する方法について詳しく解説しました。まず、基本的なプロット方法を紹介し、その後、グラフの見た目やスタイルをカスタマイズする方法について説明しました。さらに、複数のデータセットを同じグラフ上に重ねて表示する方法も示しました。

コメント

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