カラーマップ「viridis」( http://bids.github.io/colormap/ )を使用したいのですが、まだ開発バージョン1.5にアップデートする予定はありません。したがって、colormaps.py
を https://github.com/BIDS/colormap からダウンロードしました。残念ながら、私はそれを機能させることができません。これが私がすることです:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import colormaps as cmaps
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
plt.set_cmap(cmaps.viridis)
imgplot = plt.pcolormesh(lum_img)
これにより、末尾がValueError
になり、トレースバックは
ValueError:カラーマップviridisは認識されません。可能な値は次のとおりです。Spectral、summer、coolwarm、...
(そして、最初にインストールされたカラーマップの完全なリスト。)
この問題を修正する方法について何か考えはありますか?
set_cmap
を使用してviridis
をカラーマップとして設定するには、最初に登録する必要があります。
import colormaps as cmaps
plt.register_cmap(name='viridis', cmap=cmaps.viridis)
plt.set_cmap(cmaps.viridis)
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
imgplot = plt.pcolormesh(lum_img)
set_cmap
インスタンスを必要とするmatplotlib.colors.Colormap
を使用する代わりに、cmap
呼び出しでpcolormesh
を直接設定できます。
(cmaps.viridis
はmatplotlib.colors.ListedColormap
です)
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import colormaps as cmaps
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
imgplot = plt.pcolormesh(lum_img, cmap=cmaps.viridis)
私がやったのは
_viridis_data = [[0.267004, 0.004874, 0.329415],
[0.268510, 0.009605, 0.335427],
[0.269944, 0.014625, 0.341379],
:
[0.983868, 0.904867, 0.136897],
[0.993248, 0.906157, 0.143936]]
from https://github.com/BIDS/colormap/blob/master/colormaps.py
追加します:
from matplotlib.colors import ListedColormap
viridis = ListedColormap(_viridis_data, name='viridis')
plt.register_cmap(name='viridis', cmap=viridis)
plt.set_cmap(viridis)
here からcolormaps.pyをダウンロードしてください:
import os,sys
scriptpath = "/Your downloading path/colormap-master/"
sys.path.append(os.path.abspath(scriptpath))
import colormaps as cmaps
できた!