Python Matplotlib で逆コロマップを作成する
- Python Matplotlib でのカラーマップ
-
Python Matplotlib での
_r
を用いたカラーマップを反転する -
MatplotlibPython で
matplotlib.colors.Colormap.reversed()
を使用してカラーマップを反転する
カラーマップとは、データの値を色にマッピングする簡単な方法です。カラーマップを反転させるということは、各値のカラーマップを反転させるということです。例えば、低い値が yellow
色に、高い値が red
色にマップされたカラーマップがあったとします。このカラーマップを反転させると、低い値は 赤
色に、高い値は 黄
色にマップされるようになります。このチュートリアルでは、Python Matplotlib でカラーマップを反転させる様々な方法を説明します。
Python Matplotlib でのカラーマップ
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]
plt.scatter(x, y, c=y, cmap="viridis")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Virdis colormap")
plt.colorbar()
plt.show()
出力:
y の値が viridis
colormap にマップされた散布図を作成します。つまり、y の値が低い点は紺色、高い点は黄色、中間点は 青
と 緑
の色になります。
また、図の右側にはカラーバーが表示されていますが、これは y の値が異なる場合のカラーマッピングを示しています。
Python Matplotlib での _r
を用いたカラーマップを反転する
例えば、cmap='viridis_r'
は単に viridis
のカラーマップを反転させます。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]
plt.scatter(x, y, c=y, cmap="viridis_r")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()
出力:
これは散布図を作成し、その y 値を反転させた viridis
カラーマップにマップします。したがって、図中の値が大きい点は紺色になり、値が小さい点は黄色になります。
また、この例では右のカラーバーが色を反転させていることがわかります。
MatplotlibPython で matplotlib.colors.Colormap.reversed()
を使用してカラーマップを反転する
Python で colormap を反転させるもう一つの方法は、matplotlib.colors.Colormap.reversed()
メソッドを使って反転した colormap を作成することです。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]
initial_cmap = cm.get_cmap("viridis")
reversed_cmap = initial_cmap.reversed()
plt.scatter(x, y, c=y, cmap=reversed_cmap)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()
出力:
また、散布図を作成し、その y 値を反転させた viridis
コロマップにマッピングします。reversed()
メソッドは、そのメソッドが適用されたコロマップオブジェクトを反転させます。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap
x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]
initial_cmap = cm.get_cmap("viridis")
reversed_cmap = ListedColormap(initial_cmap.colors[::-1])
plt.scatter(x, y, c=y, cmap=reversed_cmap)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()
出力:
また、散布図を作成し、その y 値を反転させた viridis
カラーマップにマッピングします。どのようなカラーマップも単なる色のリストです。カラーマップ cmap
の色のリストには cmap.colors
を用いてアクセスすることができます。次にリストを反転させ、最後に matplotlib.colors
パッケージの ListedColormap()
関数を用いて反転させたリストをカラーマップに変換します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn