Pythonのmatplotlibを使った散布図のmarker34種類を実際に出力してみた。目で見てわかるPython
Pythonを使って散布図を書いてみよう
Pythonというプログラム言語を使い、matplotlibというグラフ描画ライブラリーを使うと、散布図を簡単に描くことができます。ここでは、まずは、散布図を書いてみましょう。
import numpy as np
import matplotlib.pyplot as plt
N = 50
# X,Yデータをランダムに生成
x = np.random.rand(N)
y = np.random.rand(N)
# color番号
colors = np.random.rand(N)
# バブルの大きさをばらけさせる
area = 10 * np.pi * (15 * np.random.rand(N)) ** 2
# グラフの大きさ指定
plt.figure(figsize = (15, 6))
# グラフを描画
plt.scatter(x, y, s = area, c = colors, alpha = 0.5)
plt.grid(True)
上のようなコードを書くと、以下のようなグラフを書くことができます。
このグラフの場合、1つ1つの点が「円の形」で描画されています。しかし、グラフを描画している plt.scatter(x, y, s = area, c = colors, alpha = 0.5)の箇所にmarkerを入れることで、他にも様々なマーカーを記述することができます。ここでは、一つ一つのmarkerを実際に書いてみてその結果を比べていきます。
なお、「Pythonのコードがあっても動かし方わからないよ!」って人は、Google Colaboratory使うと良いでしょう。無料で登録出来て、Pythonコードコピペすれば動くようになりますよ。
(1)marker="."
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker=".")
(2)marker=","
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker=",")
(3)marker="o"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="o")
(4)marker="v"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="v")
(5)marker="^"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="^")
(6)marker="<"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="<")
(7)marker=">"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker=">")
(8)marker="1"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="1")
(9)marker="2"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="2")
(10)marker="3"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="3")
(11)marker="4"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="4")
(12)marker="8"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="8")
(13)marker="s"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="s")
(14)marker="p"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="p")
(15)marker="P"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="P")
(16)marker="*"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="*")
(17)marker="h"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="h")
(18)marker="H"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="H")
(19)marker="+"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="+")
(20)marker="x"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="x")
(21)marker="X"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="X")
(22)marker="D"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="D")
(23)marker="d"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="d")
(24)marker="|"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="|")
(25)marker="_"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="|")
(26)marker=""
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="")
markerとして何も指定しないと空のグラフが表示されます。
(27)marker="$f$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$f$")
$で挟んで文字を入れることで、任意の文字列を散布図として表現することができます。
(28)marker="$love$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$f$")
こんな風に文字列を指定することも出来ます。
(29)marker="$の$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$の$")
日本語でも表示出来ますが、デフォルトの設定だと通らない文字列もあるので、日本語フォントを設定する必要があります。「の」はたまたま通りました。
(30)marker="$♫$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$♫$")
こんな記号を指定することも出来ます。
(31)marker="$❤️$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$❤️$")
(32)marker="$?$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$?$")
(33)marker="$😄$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$?$")
まさかの絵文字も通ります。
(33)marker="$😆$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$😆$")
(34)marker="$😅$"
plt.scatter(x, y, s = area, c = colors, alpha = 0.5,marker="$😅$")
絵文字はまだまだ色々通るので、ぜひ色々と試してみてください。Pythonって本当に楽しいですね。さようなら、さようなら、さようならー。
サポートされた費用は、また別のカンファレンス参加費などに当てようと思います。