Matplotlib20本ノック
13,複数グラフの表示
以下のデータに対し、異なる形状のグラフを横並びに3つ表示してください。
names=['Sam','John','Kevin','Adam']
values=[60,170,10,20]
・棒グラフ(plt.bar())
・散布図(plt.scatter())
・折れ線グラフ(plt.plot())
ただし、3つのグラフを表示する全体のグラフサイズは横9インチ、縦3インチとしてください。
まずは横9インチ、縦3インチのグラフを表示する図の大きさを
指定する必要があるそうです。
plt.figure() グラフを表示する枠組みを決定
names=['Sam','John','Kevin','Adam']
values=[60,170,10,120]
plt.figure(figsize=(9,3))
plt.subplot(131)
plt.bar(names,values)
plt.subplot(132)
plt.scatter(names,values)
plt.subplot(133)
plt.plot(names,values)
plt.subplot(131)の意味ですが
131の13は1行3列の意味で、最後の1は一番目です。
14,ヒートマップ
以下のコードで用意した10 × 10 のデータに対して
最小値0が白色で最大値1が青色となるカラーマップBluesを使って
ヒートマップを作成してください。
data=np.random.rand(10,10)
data=np.random.rand(10,10)
data
array([[0.36445996, 0.07872471, 0.37152357, 0.04891012, 0.37717996,
0.7468801 , 0.49554761, 0.89235962, 0.49936066, 0.70271799],
[0.0532563 , 0.71862648, 0.62478879, 0.75498499, 0.67071789,
0.02753502, 0.3949435 , 0.67698048, 0.06899804, 0.0855762 ],
[0.2115695 , 0.21786642, 0.78853988, 0.44760297, 0.19528454,
0.3156583 , 0.49335901, 0.2222361 , 0.53219833, 0.69245459],
[0.42722797, 0.72907774, 0.70643909, 0.18445922, 0.83048629,
0.96490026, 0.84366879, 0.86714216, 0.64914125, 0.40172775],
[0.79915451, 0.55119344, 0.47062763, 0.60709043, 0.4361778 ,
0.07836874, 0.51816484, 0.49237753, 0.96328985, 0.25732261],
[0.63749496, 0.20017986, 0.78354947, 0.88594056, 0.5254102 ,
0.30960404, 0.02232928, 0.58002472, 0.90792572, 0.52366066],
[0.49779987, 0.22333666, 0.33288025, 0.06827602, 0.89453813,
0.11075652, 0.32263839, 0.35555395, 0.69518812, 0.02255687],
[0.47217786, 0.92236244, 0.51208875, 0.3688267 , 0.47601072,
0.26821443, 0.04938974, 0.90192806, 0.03594915, 0.03002562],
[0.14409668, 0.43990488, 0.82349041, 0.70623955, 0.82246737,
0.39244799, 0.65292469, 0.24063912, 0.38976014, 0.31015533],
[0.32610993, 0.62292059, 0.67548213, 0.93931166, 0.74939384,
0.22947013, 0.61671364, 0.91521389, 0.34617013, 0.03967533]])
問題のdataはshapeで(10,10)となっています。
ヒートマっプの作成は plt.imshow()
で作成が可能です。
plt.imshow(data, vmin=0, vmax=1, cmap='Blues')
plt.colorbar()
10行、10列の0~1までの数字でヒートマップが表示されています。
plt.colorbar()を追加することによって、色の濃淡と数値を表す
barを追加する事がでいます。
実際のデータと見比べても1に近い数値の部分がちゃんと濃くなっています。
コメント