如何在 Matplotlib 中设置默认颜色图

How to set default colormap in Matplotlib

特别是在处理灰度图像时,将每个 imshow 命令的颜色映射设置为 imshow(i, cmap='gray') 是乏味的。如何将 matplotlib 使用的默认颜色图设置为灰度或任何其他颜色图?

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

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 以及 Matplotlib 的一般配置 http://matplotlib.org/users/customizing.html

你可以做任何一个,

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)