自定义Matplotlib绘图风格

Matplotlib是Python的一个工具包,提供了丰富的数据绘图工具,主要用于绘制一些统计图形。 # Matplotlib中包含大量预先定义的styles(绘图风格)。 比如ggplot(a popular plotting package fro R),classic(used by matplotlib-1.5 version, I like it)。可通过如下命令查看并设置合适的style。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import matplotlib as mpl 
import matplotlib.pyplot as plt
print(plt.style.available) # 查看所有的styles

fig = plt.figure()

ax1 = fig.add_subplot(311)
plt.style.use('classic')
plt.plot([1,2,3])

ax1 = fig.add_subplot(312)
plt.style.use('ggplot') # 选择需要的style
plt.plot([1,2,3])

ax1 = fig.add_subplot(313)
with plt.style.context('ggplot'):
plt.plot([1,2,3])


##
# 漫画风格
with plt.xkcd():
plot([,2,3])

自定义style

Matplotlib支持创建style文件,然后使用style.use('style-name')调用。 style文件存放在~/.config/matplotlib/stylelib文件夹,可通过matplotlib.get_configdir()进行确定,如果不存在需要自行创建。 比如,创建一个用来展示的presentation style,文件命名为presentation.mplstyle,内容如下

1
2
3
4
5
6
axes.titlesize : 24
axes.labelsize : 20
lines.linewidth : 3
lines.markersize : 10
xtick.labelsize : 16
ytick.labelsize : 16
使用时甚至可以组合使用不同的styles
1
plt.style.use(['dark_background', 'presentation'])   # 后面的style会对前面的进行覆盖 

Matplotlib rcParams 修改

1
2
3
4
5
6
7
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.color'] = 'r'

mpl.rc('lines', linewidth=2, color='r')

matplotlib.rcdefaults()

Matplotlibrc file

存放默认的rc settings 和 rc parameters。 文件为~/.config/matplotlib/matplotlibrc,可通过matplotlib.matplotlib_fname()命令进一步确定 存放在~/.config/matplotlib/文件夹而不是Python安装目录下面,好处是不会被覆盖。

python会依次在以下四个位置寻找配置文件:

当前工作目录下的 matplotlibrc $MATPLOTLIBRC/matplotlibrc 用户家目录下的 matplotlibrc。 如 Linux 一般在 ~/.config/matplotlib/matplotlibrc,win 在 ~/.matplotlib/matplotlibrc INSTALL/matplotlib/mpl-data/matplotlibrc,其中 INSTALL 指具体的安装目录


Ref: - matplotlib customizing - matplotlib 中文显示