pythonでグラフを書く (2)

前回の続きです。
これから使用頻度が高そうなグラフについて、書き方を調べてみました。

散布図

import numpy as np
import matplotlib.pyplot as plt
# 乱数の生成
x = np.random.rand(100)
y = np.random.rand(100)
fig_1 = plt.figure()

ax_1 = fig_1.add_subplot(1,1,1)
ax_1.scatter(x, y, label='test1') # plotをscatterに変えるだけ
fig_1.legend(loc='upper center')
fig_1.show()

これでできました。
マーカーの表現を変えて遊んでみます。

色を変える

マーカーの色は、c (color) オプションで変えられます。

今回は、色を名前(red)としましたが、もちろんRGB指定でもOKのようです。(ただ、書き方がよくわかりませんでした……)

fig_1 = plt.figure()

ax_1 = fig_1.add_subplot(1,1,1)
ax_1.scatter(x, y, label='test1', c='red') # cオプションで色指定
fig_1.legend(loc='upper center')
fig_1.show()

透明度を変える

散布図ではある場所に値が集中して見づらいことがありますが、マーカーを半透明にすれば解決です。
透明度はalphaで指定できます。

fig_1 = plt.figure()

ax_1 = fig_1.add_subplot(1,1,1)
ax_1.scatter(x, y, label='test1', c='red', alpha=0.2) # alphaオプションで透明度指定
fig_1.legend(loc='upper center')
fig_1.show()

大きさを変える

マーカーの大きさは、s (=size) オプションで変更できます。
なお、色指定はcolor=’red’でもc=’red’でも対応してくれましたが、sオプションはsize=だとエラーが返ってくるので注意です。

fig_1 = plt.figure()

ax_1 = fig_1.add_subplot(1,1,1)
ax_1.scatter(x, y, label='test1', c='red', s=200, alpha=0.2) # sオプションでサイズ指定
fig_1.legend(loc='upper center')
fig_1.show()

ちなみに、このサイズはリストで指定することもできます。
下では、yの値に対応して大きさが変わるようにマーカーを設定しました。

fig_1 = plt.figure()

ax_1 = fig_1.add_subplot(1,1,1)
ax_1.scatter(x, y, label='test1', c='red', s=y*100, alpha=0.2) # サイズをリストで定義
fig_1.legend(loc='upper center')
fig_1.show()

棒グラフを描く

つづいて、棒グラフです。

# 値はplotのときと同じく、線形増加
x=np.linspace(0, 20, 21)
y=x*2

fig_2 = plt.figure() # インスタンス作成
ax_2 = fig_2.add_subplot(1,1,1)
ax_2.bar(x, y)

fig_2.show()

これで棒グラフができました。
さらに積み上げグラフを作ってみます。

積み上げグラフ

fig_3 = plt.figure()
ax_31 = fig_3.add_subplot(2,1,1)
ax_31.bar(x, y, color='blue')

# もうひとつyの値を定義する
# yに比べて増加量の小さいy2として定義
y2 = x

ax_32 = fig_3.add_subplot(2,1,2)
ax_32.bar(x, y2, color='gray')
ax_32.bar(x, y, bottom=y2, color='blue') # y2の上にyの値が加算されるような積み上げグラフを作成

fig_3.show()

今回はここまで。
次回は、近似直線の書き方についてまとめます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です