少し込み入ったグラフを作成したいと考えております。
どういうものかというと、
基本的には、
次のように配列xとyにそれぞれ値が入っており、
python
1x = [1, 2, 3, ...] 2y = [21.8, 1.1, 5.6, ...]
これを点として(散布図のように)plotすることを考えております。
これは例えば
python
1plt.plot(x, y, marker='o')
または、
python
1plt.scatter(x, y, marker='o')
のようにすることで実現できますが、
実は、ここにはもう1つ別のデータ列zがあり、
この値に応じて点に色をつけたいのです。
これは例えば
python
1plt.scatter(x, y, c=z, cmap = 'hsv')
のようにすることで実現できます。
しかしさらに厄介なことに、
このデータ列にはグループが存在し、
それに応じてシンボルを変化させたいのです。
x[0 :5 ], y[0 :5 ], z[0 :5 ] <-- グループA
x[5 :12], y[5 :12], z[5 :12] <-- グループB
x[12:20], y[12:20], z[12:20] <-- グループC
これを現在、
私のスクリプトでは
次のように実行しています。
python
1group_num = [5, 7, 8, ...] #各グループの数 2group_mark = ['o', '*', 'v', ...] # 各グループのシンボル 3count = 0 4z_max = max(z) 5for i in range(len(group_num)): 6 for j in range(group_num[i]): 7 plt.plot(x[count], y[count], marker=group_mark[i], color=cm.hot(z[count]/z_max)) 8 count += 1
ここまではよかったのですが、
最後に、
この図にカラーバーを追加したいと考えたときに、
どうすればいいかわからなくなってしましました。
グループ別のシンボル変更がなければ
python
1plot = plt.scatter(x, y, c = z, cmap = 'hsv') 2plt.colorbar(plot)
のようにすることで、
カラーバーを追加できるのですが、
今回の場合にどうしたらよいかわからず困っております。
みなさまどうか知恵を貸してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/06 01:23