matplotlib用にカラーコードを生成したいのだが?
やりたいこと
ax.plot()
を使ってplotしたい。- plotのたびに色を指定したい。
- 色は連続値に対応した対応関係を以って欲しい。例えば、高い値は赤、低い値は青。
どうすればいいのか?
ここに答えがあった。
つまり、こうすればいい。
1 2 3 |
import matplotlib cmap = matplotlib.cm.get_cmap('Spectral') color_code = cmap('任意の値') |
なので、例えばplotしたいデータの重みがweights
に保存されているとすると、
1 2 3 4 5 6 7 8 |
import matplotlib cmap = matplotlib.cm.get_cmap('Spectral') xy # [(x, y)]の組 codes = [cmap(w) for w in weights] f, ax = matplotlib.pyplot.subplots() for t_xy, c in zip(xy, codes): ax.scatter(*t_xy, c=c) |
ちなみにcmapのカラーコード表はこのサイトを参照すればいい。
だいたいの場合はforループを使ってplotする必要はない。なので、こんな面倒なことをしなくても良い。でも、forループで書いてしまったほうが楽になるケースもある(稀だが)。そういうときに、カラーコードを生成するやり方を覚えておく。
ディスカッション
コメント一覧
まだ、コメントがありません