如何在Matplotlib中设置默认色彩映射

Jar*_*rno 20 python matplotlib color-mapping

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

Jar*_*rno 24

仅为当前交互式会话或一个脚本使用更改默认色彩映射

import matplotlib as mpl
mpl.rc('image', cmap='gray')
Run Code Online (Sandbox Code Playgroud)

对于matplotlib2.0之前的版本,您必须使用rcParams dict.这仍然适用于较新的版本.

import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'
Run Code Online (Sandbox Code Playgroud)

要永久更改默认色图,请编辑matplotlibrc配置文件并添加该行image.cmap: gray.根据需要将值替换为任何其他有效的colormap.配置文件应该是 ~/.config/matplotlib/matplotlibrc,但您可以找到确切的位置

mpl.matplotlib_fname()
Run Code Online (Sandbox Code Playgroud)

如果您在不同的虚拟环境中有多个matplotlib版本,这将特别有用.

另见http://txt.arboreus.com/2014/10/21/how-to-set-default-colormap-in-matplotlib.html 以及Matplotlib的一般配置http://matplotlib.org/users/customizing html的


Shi*_*hah 5

你可以做

plt.set_cmap('jet')
Run Code Online (Sandbox Code Playgroud)

要么

plt.rcParams['image.cmap']='jet'
Run Code Online (Sandbox Code Playgroud)

但是请注意,如果要color在任何API 中传递参数的值,则将忽略此默认值。在这种情况下,您应该执行以下操作:

color = plt.cm.hsv(r) # r is 0 to 1 inclusive
line = matplotlib.lines.Line2D(xdata, ydata, color=color)
Run Code Online (Sandbox Code Playgroud)

  • [为什么人们讨厌 Jet——你也应该讨厌](https://jakevdp.github.io/blog/2014/10/16/how-bad-is-your-colormap/) (2认同)