# 图表样式概述

# 默认图表样式

# matplotlib 在绘图的过程中会读取存储在本地的配置文件 matplotlibrc , 通过 matplotlibrc 文件中的缺省配置信息指定图表元素的默认样式,完成图表元素样式的初始设置,不需要开发人员逐一设置便可使用。
matplotlibrc 文件包含众多图表元素的配置项,可以通过 rc_params() 函数查看全部的配置项,示例代码及运行结果如下。

In [1]: import matplotlib
        matplotlib.rc_params ()
Out[1]: RcParams({'_internal.classic__mode': False,
        'agg.path.chunksize': 0,
        'animation.avconv_args': [],
        'animation.avconv_path': 'avconv',
        'animation.bitrate': -1,
        'animation.codec': 'h264',
        'animation.convert_args': [],
        ...省略N行...
        'ytick.minor.right': True,
        'ytick.minor.size': 2.0,
        'ytick.minor.visible': False,
        'ytick.minor.width': 0.6,
        'ytick.right': False})

# 由以上结果可知,rc_params() 函数返回一个 ReParams 对象。ReParams 对象是一个字典对象,其中字典的键是由配置要素(如 ytick)及其属性(如 right)组成的配置项,值为配置项的默认值。
所有的配置项按作用对象的不同主要分为 10 种配置要素,包括 lines(线条)、patch(图形)、font(字体)、text(文本)、axes(坐标系)、xtick 和 ytick(刻度)、grid(网格)、legend(图例)、figure(画布)及 savefig(保存图像)。 matplotlib 常用的配置项及其说明如表 4-1 所示。

image

# 需要说明的是,matplotlib 载入时会主动调用rc_params() 函数获取包含全部配置项的字典,并将该字典赋值给变量 rcParams, 以便用户采用访问字典 rcParams 的方式设置或获取配置项。

# 图表样式修改

# matplotlib 通过灵活地修改配置项来改变图表的样式,而不必拘泥于系统默认的配置。图表的样式可以通过两种方式进行修改:局部修改和全局修改。下面分别进行介绍。

# 局部修改

# 局部修改的方式是指通过代码动态地修改 matplotlib 配置项,此方式用于满足程序局部定制的需求。若希望局部修改图表的样式,则可以通过以下任一种方式实现。

# (1)通过给函数的关键字参数传值来修改图表的样式。例如,将线条的宽度设为 3, 代码如下:

plt.plot([1, 2, 3], [3, 4, 5], linewidth=3)

# (2)通过“rcParams[配置项]”重新为配置项赋值来修改图表的样式。例如,将线条的宽度设为 3, 代码如下:

plt.rcParams['lines.linewidth'] = 3

# (3)通过给 re() 函数的关键字参数传值来修改图表的样式。re() 函数的语法格式如下所示:

rc(group, **kwargs)

# 该函数的 group 参数表示配置要素。例如,将线条的宽度设为 3, 代码如下:

plt.rc('line', linewidth=3)

# 需要注意的是,第 1 种方式只能对某一图表中指定元素的样式进行修改,而第 2 种和第 3 种方式可以对整个 py 文件中指定元素的样式进行修改。

# 全局修改

# 全局修改的方式是指直接修改 matplotlibrc 文件的配置项,此方式用于满足程序全局定制的需求,可以对指定的图表样式进行统一修改,不需要每次在具体的程序中进行单独修改,不仅提高了代码的编写效率,而且减轻了重复操作的负担。
matplolibrc 文件主要存在于 3 个路径:当前工作路径、用户配置路径和系统配置路径。不同的路径决定了配置文件的调用顺序。malploilib 使用 matplotlibrc 文件的路径搜索顺序如下。

# 当前工作路径:程序运行的目录。
用户配置路径:通常位于 HOME/.matplodib/ 目录中,可以通过环境变量 MATPLOTLIBRC 进行修改。
系统配置路径:位于 matplotlib 安装路径的 mpl-data 目录中。

# matplotlib 可以使用 matplotlib_fname() 函数查看当前使用的 matplotlibrc 文件所在的路径,示例代码及运行结果如下。

In [2]: import matplotlib
        matplotlib.matplotlib_fname()
Out[2]: 'C:\\Users\\admin\\Anaconda3\\lib\\site-packages\\matplotlib\\
        mpl-data\\matplotlibrc'

# 以上提供了多种修改图表样式的方式,具体选择哪种方式完全取决于项目。若用户开发的项目中包含多个相同的配置项,可以采用全局修改的方式修改图表样式;若用户开发的项目中需要定制个别配置项,可以采用局部修改的方式灵活地修改图表的样式,例如,使用 rcParams 字典设置中文字体。