matplotlib で 散布図 を表示したいです。
plt.scatter を使うことで 散布図 を表示できる。
散布図の表示設定も解説しよう。
✔️ 本記事のテーマ
matplotlib で 散布図 を表示する方法
✔️ 読者さんへの前置きメッセージ
本記事は
「散布図を表示する方法 や 様々な表示設定」
について書いています。
Python では matplotlib ライブラリを使うことで、
簡単に散布図を表示することができます。
この記事ではさらに深掘りして、
表示設定を変更して、様々な散布図を表示する方法について解説します。
この記事に掲載しているサンプルコードは環境さえ整っていれば、
コピペで動くはずなので使用して頂いてOKです。
では、解説していきましょう。
Python で matplotlib を使うための前準備
まず、Python で matplotlib を使うために pip でインストールします。
以下のコマンドでインストールできます。
pip install matplotlib
また、描画するデータを作成するために使用するので、 Numpy もインストールします。
pip install numpy
matplotlib で 散布図 を出力する
以下のコードで最も簡単な散布図を表示することができます。
import numpy as np
import matplotlib.pyplot as plt
# 乱数を生成
x = np.random.rand(100)
y = np.random.rand(100)
# 散布図を描画
plt.scatter(x, y)
# タイトルとラベルの設定
plt.title('simple plot')
plt.xlabel('x')
plt.ylabel('y')
# 散布図を表示
plt.show()
サンプルコードを順番に解説していきましょう。
ライブラリのインポート
まずは、コードで使用するライブラリをインポートします。
import numpy as np
import matplotlib.pyplot as plt
乱数を生成
散布図に描画するデータを生成します。
np.random.rand を使うことでランダムな数字を生成することができます。
今回は x軸、y軸の情報を持った100個のデータを描画します。
# 乱数を生成
x = np.random.rand(100)
y = np.random.rand(100)
散布図を描画
plt.scatter() で散布図を描画します。
引数には生成した乱数(x軸データ、y軸データ)を渡します。
# 散布図を描画
plt.scatter(x, y)
タイトルとラベルの設定
表示する散布図のタイトルとラベルを設定します。
plt.title() でタイトル
plt.xlabel() で横軸に表示するラベル
plt.ylabel() で縦軸に表示するラベル
を設定します。
# タイトルとラベルの設定
plt.title('simple plot')
plt.xlabel('x')
plt.ylabel('y')
散布図を表示
最後に、ここまで作成してきた散布図を表示します。
plt.show() で散布図を表示します。
# 散布図を表示
plt.show()
matplotlib で「データごとに色を変えた」散布図を出力する
matplotlib では散布図に描画するデータごとに色を変えることができます。
描画する色を変えるには plt.scatter の引数 c に色を指定します。
色の名称を文字列で指定します。
plt.scatter(x1, y1, c='red')
以下のサンプルコードで「データごとに色を変えた」散布図を表示することができます。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red')
plt.scatter(x2, y2, c='blue')
plt.title('change color by data')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
matplotlib で「データの説明を表示した」散布図を出力する
matplotlib では散布図にデータの説明を表示することができます。
データの説明を表示するには plt.scatter の引数 label にデータの名称を指定します。
そして、 plt.legend() を実行することで、散布図にデータの説明を表示することができます。
plt.scatter(x1, y1, c='red', label='group1')
plt.scatter(x2, y2, c='blue', label='group2')
plt.legend(loc='upper right')
なお、 plt.legend() の引数 loc を指定することで好きな位置に説明を表示することができます。
- upper right
- upper center
- upper left
- center left
- center
- center right
- lower left
- lower center
- lower right
以下のサンプルコードで「データの説明を表示した」散布図を表示することができます。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red', label='group1')
plt.scatter(x2, y2, c='blue', label='group2')
plt.legend(loc='upper right')
plt.title('add description')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
matplotlib で「罫線を表示した」散布図を出力する
matplotlib では散布図に罫線を表示することができます。
罫線を追加するには plt.grid(True) を実行します。
plt.grid(True)
以下のサンプルコードで「罫線を表示した」散布図を表示することができます。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red', label='group1')
plt.scatter(x2, y2, c='blue', label='group2')
plt.legend(loc='upper right')
plt.grid(True)
plt.title('add grid')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
散布図に表示する「罫線」のオプション
散布図に表示する罫線は「罫線のオプション」を設定することができます。
これにより、様々な罫線を表示することができます。
plt.grid(color=色, linestyle=線の種類, linewidth=線の太さ)
それぞれ指定することで、表示する散布図に表示する罫線を変更することができます。
以下のサンプルコードで「緑色」「ドット」「少し太い」罫線を表示することができます。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red', label='group1')
plt.scatter(x2, y2, c='blue', label='group2')
plt.legend(loc='upper right')
plt.grid(color='g', linestyle='dotted', linewidth=3)
plt.title('add color grid')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
matplotlib で「マーカーを変えた」散布図を出力する
matplotlib では散布図に描画するマーカーを変えることができます。
マーカーを変えるには plt.scatter の引数 marker に記号を指定します。
plt.scatter(x1, y1, marker='*')
指定できる記号の一例は以下の通りです。
- * : 星型のマーカー
- ^ : 三角形のマーカー
- o : 丸型のマーカー
- s : 四角形のマーカー
- . : 点のマーカー
以下のサンプルコードで「マーカーを変えた」散布図を表示することができます。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red', label='group1', marker='*')
plt.scatter(x2, y2, c='blue', label='group2', marker='^')
plt.legend(loc='upper right')
plt.grid(color='g', linestyle='dotted', linewidth=1)
plt.title('change marker')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
散布図に表示する「マーカーの大きさ」
散布図に表示するマーカーは大きさを変えることができます。
マーカーの大きさを変えるには plt.scatter の引数 s に数字を指定します。
plt.scatter(x1, y1, marker='*', s=100)
以下のサンプルコードではデータごとにマーカーの大きさを変えています。
x1 = np.random.rand(100)*0.5
y1 = np.random.rand(100)
x2 = np.random.rand(100)*0.5 + 0.5
y2 = np.random.rand(100)
plt.scatter(x1, y1, c='red', label='group1', marker='*', s=100)
plt.scatter(x2, y2, c='blue', label='group2', marker='^', s=20)
plt.legend(loc='upper right')
plt.grid(color='g', linestyle='dotted', linewidth=1)
plt.title('change marker size')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
matplotlib についてもっとスキルをつけるなら
今回は matplotlib で「様々な散布図を表示する」方法について解説しました。
matplotlib はデータ分析などでも使用される便利なライブラリです。
Matplotlib についてさらに学ぶためには以下の書籍がオススメです。
この書籍は初心者向けにかなり丁寧に書かれています。
さまざまな状況においてどのようなライブラリを使うべきなのか、
また各ライブラリをどのように使うのかについて詳しく説明されています。
また、この書籍の出版元であるオライリー社はプログラミングや機械学習の世界で有名です。
これから機械学習についてスキルを高めようとしている方にオススメの書籍です。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼
▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント