matplotlib
中封装了一些颜色变化映射,被封装在cm
中。但在创建颜色映射的时候,不一定需要调用plt.cm.XXX
,基于plt.get_cmap
同样可以做到伪彩图映射。
通过dir(plt.cm)
可以获取plt.cm
中封装的所有伪彩色,如图所示
代码如下,其中关键的绘图代码为ax.imshow(gradient, cmap=plt.get_cmap(name))
,imshow
用于展示图片,cmap
即为图片所上的伪彩色。
import matplotlib.pyplot as plt
import numpy as np
names = []
for n in dir(plt.cm):
try:
plt.set_cmap(n) #由于`plt.cm`封装的不仅仅是颜色映射
names.append(n)
except: pass
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient)) #此为一灰度图像
fig, axes = plt.subplots(nrows=int(len(names)/2),ncols=2)
fig.subplots_adjust(top=0.99, bottom=0.01, left=0.1, right=0.99)
axes = axes.reshape(len(names))
for ax, name in zip(axes, names):
ax.imshow(gradient, cmap=plt.get_cmap(name))
pos = list(ax.get_position().bounds)
x_text = pos[0] - 0.01
y_text = pos[1] + pos[3]/2.
fig.text(x_text, y_text, name, va='center', ha='right', fontsize=8)
for ax in axes:
ax.set_axis_off()
plt.show()
这些预设的伪彩映射共计166种,如果观察它们的名字可以发现,右侧的图和左侧相比只在末尾多了一个_r
,其图像正好和左侧对称,即_r
色正好是非_r
色的倒映射。
matplotlib
官方将左侧的这些颜色映射分成了6类,具体内容可查看Choosing Colormaps in Matplotlib,列表如下
Accent | Accent_r |
Blues | Blues_r |
BrBG | BrBG_r |
BuGn | BuGn_r |
BuPu | BuPu_r |
CMRmap | CMRmap_r |
Dark2 | Dark2_r |
GnBu | GnBu_r |
Greens | Greens_r |
Greys | Greys_r |
OrRd | OrRd_r |
Oranges | Oranges_r |
PRGn | PRGn_r |
Paired | Paired_r |
Pastel1 | Pastel1_r |
Pastel2 | Pastel2_r |
PiYG | PiYG_r |
PuBu | PuBuGn |
PuBuGn_r | |
PuBu_r | |
PuOr | PuOr_r |
PuRd | PuRd_r |
Purples | Purples_r |
RdBu | RdBu_r |
RdGy | RdGy_r |
RdPu | RdPu_r |
RdYlBu | RdYlBu_r |
RdYlGn | RdYlGn_r |
Reds | Reds_r |
Set1 | Set1_r |
Set2 | Set2_r |
Set3 | Set3_r |
Spectral | Spectral_r |
Wistia | Wistia_r |
YlGn | YlGnBu |
YlGnBu_r | YlGn_r |
YlOrBr | YlOrBr_r |
YlOrRd | YlOrRd_r |
afmhot | afmhot_r |
autumn | autumn_r |
binary | binary_r |
bone | bone_r |
brg | brg_r |
bwr | bwr_r |
cividis | cividis_r |
cool | cool_r |
coolwarm | coolwarm_r |
copper | copper_r |
cubehelix | cubehelix_r |
flag | flag_r |
gist_earth | gist_earth_r |
gist_gray | gist_gray_r |
gist_heat | gist_heat_r |
gist_ncar | gist_ncar_r |
gist_rainbow | gist_rainbow_r |
gist_stern | gist_stern_r |
gist_yarg | gist_yarg_r |
gnuplot | gnuplot2 |
gnuplot2_r | gnuplot_r |
gray | gray_r |
hot | hot_r |
hsv | hsv_r |
inferno | inferno_r |
jet | jet_r |
magma | magma_r |
nipy_spectral | nipy_spectral_r |
ocean | ocean_r |
pink | pink_r |
plasma | plasma_r |
prism | prism_r |
rainbow_r | |
seismic | seismic_r |
spring | spring_r |
summer | summer_r |
tab10 | tab10_r |
tab20 | tab20_r |
tab20b | tab20b_r |
tab20c | tab20c_r |
terrain | terrain_r |
turbo | turbo_r |
twilight | twilight_r |
twilight_shifted | twilight_shifted_r |
viridis | viridis_r |
winter | winter_r |