目次
matplolib
前回、PyAutoGUIを使って自動でスクリーンショットを撮影する方法を紹介しました。
【Python基礎】PyAutoGUIで自動でスクリーンショットを撮影する方法
PyAutoGUI 前回は、SciPyやPandasを使ってグラフの歪度(左右非対称具合)と尖度(尖り具合)を取得する方法を紹介を紹介しました。 今回はPyAutoGUIを使って自動でスク…
今回はmatplotlibの2つのヒストグラムをhist2dを使って2次元カラープロットで表示する方法を紹介します。
まずは2つのヒストグラム用データをこちらの記事を参考に作成しました。
【matplotlib】hist関数で複数のヒストグラムを同時に表示する方法とコツ[Python]
matplotlib 前回、Pythonのmatplotlibでヒストグラムを表示するhist関数を紹介しました。 今回はmatplotlibのhist関数で複数のヒストグラムを表示する方法とコツを紹介…
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist(data1, bins=100, alpha=0.5)
plt.hist(data2, bins=100, alpha=0.5)
plt.show()
実行結果
今回はこの2つのヒストグラムを2次元カラープロットで表示してみます。
それでは始めていきましょう。
hist2d
2つのデータを2次元カラープロットで表示するにはmatplotlibの「hist2d」という関数を用います。
使い方は「hist2d(1つ目のデータ, 2つ目のデータ)」です。
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist2d(data1, data2)
plt.show()
このままだとあまりに分解能が悪すぎて大雑把なデータになっています。
データの分割数を上げてより細かくするには「bins」のオプション引数を追加します。
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist2d(data1, data2, bins=100)
plt.show()
色を変えるには「cmap」のオプション引数を追加します。
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist2d(data1, data2, bins=100, cmap="Reds")
plt.show()
実行結果
使用できるカラーマップはこちらのページを参考にしてください。
表示する範囲を変えるには「range=[[X軸の最小値, X軸の最大値],[Y軸の最小値, Y軸の最大値]]」を追加します。
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist2d(data1, data2, bins=100, range=[[5, 15], [10, 30]])
plt.show()
実行結果
カラーバーを表示するには「plt.colorbar()」で表示でき、hist2dのオプション引数に「vmin」、「vmax」を追加することで色調範囲を指定することができます。
import random
import matplotlib.pyplot as plt
x_list = range(10000)
data1 = [random.gauss(10, 2) for _ in x_list]
data2 = [random.gauss(20, 3) for _ in x_list]
fig = plt.figure()
plt.clf()
plt.hist2d(data1, data2, bins=100, vmin=5, vmax=12)
plt.colorbar()
plt.show()
実行結果
次回はNumPyで多変量正規分布に従う乱数を取得する方法(np.random.multivariate_normal)を紹介します。
ではでは今回はこんな感じで。
コメント