06.02 使用 style 来配置 pyplot 风格
使用 style 来配置 pyplot 风格
1import matplotlib.pyplot as plt
2import numpy as np
3
4%matplotlib inline
style 是 pyplot 的一个子模块,方便进行风格转换, pyplot 有很多的预设风格,可以使用 plt.style.available 来查看:
1plt.style.available
[u'dark_background', u'bmh', u'grayscale', u'ggplot', u'fivethirtyeight']
1x = np.linspace(0, 2 * np.pi)
2y = np.sin(x)
3
4plt.plot(x, y)
5
6plt.show()
例如,我们可以模仿 R 语言中常用的 ggplot 风格:
1plt.style.use('ggplot')
2
3plt.plot(x, y)
4
5plt.show()
有时候,我们不希望改变全局的风格,只是想暂时改变一下分隔,则可以使用 context 将风格改变限制在某一个代码块内:
1with plt.style.context(('dark_background')):
2 plt.plot(x, y, 'r-o')
3 plt.show()
在代码块外绘图则仍然是全局的风格。
1with plt.style.context(('dark_background')):
2 pass
3plt.plot(x, y, 'r-o')
4plt.show()
还可以混搭使用多种风格,不过最右边的一种风格会将最左边的覆盖:
1plt.style.use(['dark_background', 'ggplot'])
2
3plt.plot(x, y, 'r-o')
4plt.show()
事实上,我们还可以自定义风格文件。
自定义文件需要放在 matplotlib 的配置文件夹 mpl_configdir 的子文件夹 mpl_configdir/stylelib/ 下,以 .mplstyle 结尾。
mpl_configdir 的位置可以这样查看:
1import matplotlib
2matplotlib.get_configdir()
u'c:/Users/Jin\\.matplotlib'
里面的内容以 属性:值 的形式保存:
1axes.titlesize : 24
2axes.labelsize : 20
3lines.linewidth : 3
4lines.markersize : 10
5xtick.labelsize : 16
6ytick.labelsize : 16
假设我们将其保存为 mpl_configdir/stylelib/presentation.mplstyle,那么使用这个风格的时候只需要调用:
plt.style.use('presentation')