[ Matplotlib version: 3.2.1 ]
九、配置颜色条
图例通过离散的标签标示离散的图形元素,然而,对于图形中由彩色的点、线、面构成的连续标签,用颜色条来表示的效果比较好。
在Matplotlib中,颜色条是一条独立的坐标轴,可以指明图形中颜色的含义。
通过colorbar()
函数可以创建最简单的颜色条
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('classic')
%matplotlib inline
# 简易颜色条图例
x = np.linspace(0, 10, 1000)
I = np.sin(x) * np.cos(x[:, np.newaxis])
plt.imshow(I)
plt.colorbar()
可以通过cmap
参数为图形设置颜色条的配色方案
plt.cm.<Tab>
查看所有可用配色方案
plt.imshow(I, cmap='gray')
(一)选择配色方案
一般情况下,只需要重点关注三种不同的配色方案:
- 顺序配色方案:由一组连续的颜色构成的配色方案(如
binary
或viridis
) - 互逆配色方案:通常由两种互补的颜色构成,表示正反两种含义(如
RdBu
或PuOr
) - 定性配色方案:随机顺序的一组颜色(如
rainbow
或jet
)
jet
配色方案与非等差的渐变亮度
–jet
是一种定性配色方案,曾是Matplotlib 2.0之前所有版本的默认配色方案
– 缺点:定性配色方案在对定性数据进行可视化时的选择空间非常有限。随着图形亮度的提高,经常会出现颜色无法区分的问题
– 灰度图里比较亮的部分条纹:这些亮度变化不均匀的条纹在彩色图中对应某一段彩色区间,由于色彩太接近容易凸显出数据集中不重要的部分,导致眼睛无法识别重点
from matplotlib.colors import LinearSegmentedColormap
def grayscale_cmap</