Matplotlib 的默认颜色 以及 使用调色盘调整颜色

1. matplotlib 的默认颜色 color 方案

这里仅截取如下代码片段:

...
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',   # 使用颜色编码定义颜色
          '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']
reviews['province'].value_counts().head(10).plot.bar(color=colors)  # 使用颜色
# 上述颜色编码对应的颜色如下图所示,也是 matplotlib 2.0+ 版本默认的颜色

官方指南见如下两个链接:

官方指南提到:

  • matplotlib 2.0 版本之后,默认颜色不再是之前的 ['b', 'g', 'r', 'c', 'm', 'y', 'k',...], 所以使用 'b' 反而是奇怪的颜色,并不能调出默认颜色 '#1f77b4'。

  • 为了与当前配色一致,可以使用 colors = ['C0', 'C1', 'C2', ...], 或者可分别用 'C0' 到 'C9' 来调用这些颜色: color='C0',参见调用默认蓝色

  • 可用如下命令显示当前程序所调用的默认颜色:
    print(plt.rcParams['axes.prop_cycle'].by_key()['color']) # rc 代表 run commands, 例如 bashrc

  • 这一网址 提供了一些可用的配色方案以及对应的颜色编码,L*A*M*D*A-3第4次知识分享会ppt所提到。

  • 进一步参考: matplotlib cheetshit 来自 知乎


2. Matplotlib 绘图的不同风格

sytle

3. Matplotlib 图片的尺寸大小调节:

官方文档: https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.figure.html

  • figsize (default: [6.4, 4.8]): 表示整张画布的大小,单位为 inch, 1 inch = 2.54 cm
  • dpi (default: 100.0): 代表每一英寸的打印点个数,即 分辨率。 The resolution of the figure in dots-per-inch.
  • 字体大小 fontsize 是和 point 对应。参见If float, the fontsize in points.
  • 线条粗细也是与 point 对应。参见 Set the line width in points.
  • 1 point = 0.3527 毫米 = 1/72 英寸,12号字就是12磅高。

PS: figsize 代表了图片的实际大小。
但当显示的时候,由于屏幕(or 论文单栏)的大小是有限的,可能会对图片进行放缩,导致图片中字体,以及线条粗细的大小会发生视觉上的差异。
例如: [64000, 48000] 大小的图片上 fontsize=20 号字体,与 [6.4, 4.8] 大小的图片上 fontsize=20 号的字体显示的大小不一致。

常用的一些代码片段:

fig, ax = plt.subplots(2, 2, figsize=[6.4*2*0.6, 6.4*0.6]) # 画子图,控制画布的大小
#fig, ax = plt.subplots(2, 3, figsize=[6.4*3*0.6, 4.8*0.6])
ax[0,0].set_ylabel('Test accuracy', fontsize=16)
ax[0,0].legend(handles[::-1], labels[::-1], loc='down right', fontsize=8)
fig.subplots_adjust(wspace=0.3, hspace=0.6)
file = 'fig1.pdf'
plt.savefig(file, dpi=400, bbox_inches='tight', pad_inches=0.01)  # 截去多余的空白

2021.5.1 更新

考虑使用不同的调色盘。

原文地址:https://www.cnblogs.com/Gelthin2017/p/14177100.html