web-dev-qa-db-ja.com

Matplotlibでデフォルトのカラーマップを設定する方法

特にグレースケール画像を扱う場合、imshowコマンドごとにimshow(i, cmap='gray')としてカラーマップを設定するのは面倒です。 matplotlibがグレースケールまたは他のカラーマップに使用するデフォルトのカラーマップを設定するにはどうすればよいですか?

19
Jarno

現在のインタラクティブセッションまたは1つのスクリプトのデフォルトカラーマップのみを変更するには

import matplotlib as mpl
mpl.rc('image', cmap='gray')

2.0より前のmatplotlibのバージョンでは、rcParams dictを使用する必要があります。これは、新しいバージョンでも機能します。

import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'

デフォルトのカラーマップを永久に変更するには、matplotlibrc構成ファイルを編集して、行image.cmap: gray。必要に応じて、値grayを他の有効なカラーマップに置き換えます。構成ファイルは~/.config/matplotlib/matplotlibrc、しかしあなたは正確な場所を見つけることができます

mpl.matplotlib_fname()

これは、異なる仮想環境に複数のmatplotlibバージョンがある場合に特に便利です。

http://txt.arboreus.com/2014/10/21/how-to-set-default-colormap-in-matplotlib.html およびMatplotlibの一般的な構成についても参照してください http://matplotlib.org/users/customizing.html

24
Jarno

どちらでもできます

plt.set_cmap('jet')

または

plt.rcParams['image.cmap']='jet'

ただし、いずれかのAPIでcolorパラメーターの値を渡す場合、このデフォルトは無視されることに注意してください。その場合、次のようにする必要があります。

color = plt.cm.hsv(r) # r is 0 to 1 inclusive
line = matplotlib.lines.Line2D(xdata, ydata, color=color)
2
Shital Shah