前提・実現したいこと
ある画像(既に画像ファイルとして存在しています)の各色が何を表しているのかをカラーバーの様に棒状にして画像に加えたいと考えています(ヒートマップの凡例をつくる)。例として下記の画像を示します。この色は標高何メートルと決めて標記したいです。緑色は0~100m、オレンジ色は300~400mであったりとかいう感じです。画像は次のURLから引用しています。
https://www.gsi.go.jp/KIDS/KIDS07.html
発生している問題・エラーメッセージ
初心者で大変申し訳ないですが、この表し方が分かりません。調査した結果、カラーバーとは自分がカラーマップを作成しそれを利用して作るといったものだと理解しています。上記の画像にある自分が表したい色を用いたカラーマップを自作する必要があるのか、はたまた画像の色を読み取りそれをカラーバーの様に表す事が出来るのかが分からない状態です。試しに任意で等高線を作り、カラーバーを表示してみました。この等高線の様に上記の画像を基に、カラーバーの軸を0、100、200、300、400・・・の様にしたいです。エラーメッセージは出ませんでした。
該当のソースコード
任意の等高線とそのカラーバーを作ったソースコードを示します。しかしこれはあくまでこの様な等高線のカラーバーはこの様に表したいというイメージであり、実際に私が求めるのは上記のURLにある画像の色をカラーバーの様に表したいという事です。
Python
1import matplotlib.pyplot as plt 2import numpy as np 3 4 5# データを作成する。 6def f(x, y): 7 return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x) 8 9 10x = np.linspace(0, 5, 50) 11y = np.linspace(0, 5, 40) 12X, Y = np.meshgrid(x, y) 13Z = f(X, Y) 14 15# 等高線を作成する。 16fig, ax = plt.subplots() 17c = ax.contourf(X, Y, Z, 20, cmap="jet") 18fig.colorbar(c) 19 20plt.show()
試したこと
調査した結果、カラーバーとは自分がカラーマップを作成しそれを利用して作るといったものだと理解しています。上記の画像にある自分が表したい色を用いたカラーマップを自作する必要があるのか、はたまた画像の色を読み取りそれをカラーバーの様に表す事が出来るのかが分からない状態です。とりあえずイメージを考えたいとの事で、任意の等高線とカラーバーを作成しました。
補足情報(FW/ツールのバージョンなど)
言語:Python
環境:Windows10
ブラウザ:Google chrome(Google Colaboratory)
*ノートパソコンです。全て最新バージョンです。プログラミング中はcolab以外のタブ、アプリは開いていません。
*急ぎの内容の為、以下のサイトでも同様の質問をさせていただいています。他サイトで解決した場合、こちらでも明記します。
https://ja.stackoverflow.com/questions/82701
回答2件
あなたの回答
tips
プレビュー