今回は統計学などで良く利用される散布図をPythonのMatplotlibを使って描画する方法を解説します。
散布図以外のグラフに関しても以下の記事で解説していますので、あわせてご覧ください。

散布図を描画する scatter
matplotlibを使って散布図を作成するにはscatterメソッドを使用します。
scatterの使い方
第1、第2引数にプロットしたいデータのリストを渡します。
plt.scatter(x, y, marker = "o", c = "b", s = 50, label= "data 1")
それ以外のパラメータは以下の通りです。
パラメータ
マーカーの形状を指定します。
marker = "o"
マーカーの色を指定します。
c = "b"
マーカーのサイズを指定します。
s = 50
マーカーのラベルを指定します。
label= "data 1"

作成したソースコード
作成したソースコードは以下の通りです。
ランダムなデータ100個を2セット描画するコードです。
import numpy as np
import matplotlib.pyplot as plt
import random
a = []
b = []
x = []
y = []
plt.figure(figsize = (6, 6))
#表示するデータを生成
for i in range(100):
a.append(random.uniform(0, 10))
b.append(random.uniform(0, 10))
x.append(random.uniform(0, 10))
y.append(random.uniform(0, 10))
#散布図を描画
plt.scatter(a, b, marker = "o", c = "b", s = 50, label= "data 1")
plt.scatter(x, y, marker = "x", c = "k", s = 50, label= "data 2")
plt.xlabel("x_axis", fontsize = 14) #X軸ラベル
plt.ylabel("y_axis", fontsize = 14) #Y軸ラベル
plt.xticks(size = 14) #X軸目盛りのサイズ
plt.yticks(size = 14) #Y軸目盛りのサイズ
plt.legend(fontsize = 14) #凡例を表示
plt.show()

実行結果
実行結果は以下の通りです。
引数で渡したデータがマーカーで正しくプロットされました。

散布図は以下のように機械学習の分類問題などの可視化にも有効です。


プログラミングのスキルを活かすには
プログラミングのスキルを仕事に活かすには、フリーランスとして受けられる案件がおすすめです。

テックゲートフリーランスは、フリーランスエンジニアの案件紹介や契約交渉・債権管理などのサポートを行っているフリーランスエージェントです。
- リモートワーク可能な案件が50%以上
- 週3〜4日の案件の豊富さ
- 年収100万円アップのサポート
無料相談フォームからご登録いただくだけで、経験年数やスキルに合わせて案件をご紹介。また、リモートワーク可能な案件や週3〜4日OKの案件も豊富に用意されています。
副業やフリーランスとして仕事を受けてみたいと考えている方には、テックゲートフリーランスが提供する多様なサポートが非常におすすめです。
\ 無料で登録してみる! /
まとめ
今回はMatplotlibのscatterメソッドを使って散布図を描画する方法を解説しました。データの分布を可視化するのに役立ちますので、ぜひ活用してみてください。
Matplotlibの使い方についてさらに詳しく学びたい方には、Udemyの以下の講座がおすすめです。コードと可視化したグラフを見ながら、Matplotlibで表示できるグラフ形式を網羅的に学習できます。(私自身もこの講座を受講しています)

また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。



参考

コメント