如何在Matplotlib中设置默认的颜色映射表

35

特别是当处理灰度图像时,对于每个imshow命令都设置色彩映射为imshow(i, cmap='gray')非常繁琐。我该如何将matplotlib使用的默认颜色映射设置为灰度或其他颜色映射?

2个回答

36

要仅更改当前交互会话或一个脚本的默认色图,请使用

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

对于版本号在2.0之前的 matplotlib 版本,你需要使用 rcParams 字典。这个方法在新版本中同样适用。

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以设置默认颜色映射,以及http://matplotlib.org/users/customizing.html以进行Matplotlib的一般配置。


23

你可以选择任意一种方式,

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)

6
为什么人们讨厌 Jet 颜色图,而你也应该这样做 - JohanC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接