目录
一、图表样式概述
(一)、默认图表样式
matplotlib在绘图的过程中会读取存储在本地的配置文件matplotlibrc,通过matplotlibrc文件中的缺省配置信息指定图表元素的默认样式,完成图表元素样式的初始设置。
通过rc_params()函数可以查看matplotlibrc文件中全部的配置项。
配置项按照作用对象的不同主要分为10种配置要素:

(二)、图表样式修改
图表的样式可以通过两种方式进行修改:局部修改和全局修改。
1、局部修改
局部修改的方式是指通过代码动态地修改matplotlib配置项,此方式用于程序局部定制的需求。若希望局部修改图表的样式,可以通过以下任一种方式实现
第1种---通过给绘图函数或设置图表元素函数的关键字参数传值来修改图表的样式。
第2种---通过"rcParams[配置项]"重新为配置项赋值来修改图表的样式。
第3种---通过给rc()函数的关键字参数传值来修改图表的样式。
第1种方式只能对某一图表中指定元素的样式进行修改,而第2种和第3种方式可以对整个py文件中指定元素的样式进行修改。
2、全局修改
全局修改的方式是指直接修改matplotlibrc文件的配置项,此方式用于满足程序全局定制的需求,可以将指定的图表样式进行统一修改,无需每次在具体的程序中进行单独修改。 matplotlib使用matplotlibrc文件的路径搜索顺序:
① 当前工作路径 :程序运行的目录。
② 用户配置路径 :通常位于 HOME/.matplotlib/ 目录中,可以通过环境变量 MATPLOTLIBRC 进行修改。
③ 系统配置路径 :位于 matplotlib 安装路径的 mpl-data 目录中。
matplotlib_fname()函数查看当前使用的matplotlibrc文件所在的路径。
二、使用颜色
(一)、使用基础颜色

matplotlib的基础颜色主要有3种表示方式:单词缩写或单词、十六进制或HTML模式、RGB模式。
1、单词缩写或单词表示的颜色
matplotlib中支持使用单词缩写或单词表示的8种颜色:青色、洋红色、黄色、黑色、红色、绿色、蓝色、白色。

2、十六进制/HTML模式表示的颜色
matplotlib支持使用十六进制或HTML/CSS的形式表示更多的颜色,它将这些颜色存储在colors.cnames字典中,可通过访问colors.cnames字典查看全部的颜色。
3、RGB模式表示的颜色
matplotlib支持使用RGB模式的三元组表示颜色,其中元组的第1个元素代表红色值,第2个元素代表绿色值,第3个元素代表蓝色值,且每个元素的取值范围均是[0,1]。
color = (0.3, 0.3, 0.4)

(二)、使用颜色映射表
通过 colormaps() 函数可以查看所有可用的颜色映射表。
python
import matplotlib.pyplot as plt
plt.colormaps()

颜色映射表分类:
Sequential :表示同一颜色从低饱和度到高饱和度的单色颜色映射表。
Diverging :表示颜色从中间的明亮色过渡到两个不同颜色范围方向的颜色映射表。
Qualitative :表示可以轻易区分不同种类数据的颜色映射表。
可以通过matplotlib.cm.register_cmap()函数将自定义的颜色映射表添加到matplotlib中。

三、选择线型
选择线条的类型
图表中每个线条均具有不同的含义,一般可以通过颜色、宽度、类型来区分线条,其中类型是区分线条的常见方式之一。
matplotlib中内置了4种线条的类型:短虚线、点划线、长虚线和实线。

在使用pyplot绘制折线图、显示网格或添加参考线时,可以将线型取值传递给linestyle或ls参数,以选择其它的线条类型。
python
plt.plot([1, 2, 3], [3, 4, 5], linestyle='--')
plt.plot([1, 2, 3], [3, 4, 5], ls='--')
四、添加数据标记
数据标记一般指代表单个数据的圆点或其它符号等,用于强数据点的位置,常见于折线图和散点图中。
(一)、添加折线图或散点图的数据标记
数据标记可以分为填充型数据标记和非填充型数据标记。

1、marker参数
在使用pyplot的plot()或scatter()函数绘制折线图或散点图时,可以将标记取值传递给marker参数,从而为折线图或散点图添加数据标记。
python
plt.plot([1, 2, 3], [3, 4, 5], marker='*')


(二)、格式字符串
matplotlib在绘制折线图时,可以使用字符串分别为线条指定颜色、线型和数据标记这三种样式,但每次都需要分别给参数color、linestyle、marker传值进行一一设置,使得编写的代码过于繁琐。为此,matplotlib提供了由颜色、标记、线型构成的格式字符串。
格式字符串是快速设置线条基本样式的缩写形式的字符串。
'[颜色][标记][线型]'
以上格式的每个选项都是可选的,选项之间组合的顺序也是可变的。
颜色只能是字母缩写方式表示的颜色。
若格式字符串中只有颜色一个选项,可以使用十六进制、单词拼写等其它形式表示的颜色。
python
plt.plot([1, 2, 3], [3, 4, 5], 'mo--')

五、设置字体
设置字体样式
matplotlib中文本是text模块的Text类对象,可以通过之前介绍的text()、annotate()、title()等函数进行创建。Text类中提供了一系列设置字体样式的属性,包括字体类别、字体大小、字体风格、字体角度等。

也可以作为text()、annotate()、title()函数的同名关键字参数,以便用户在创建文本的同时设置字体的样式。
六、切换主题风格
matplotlib.style模块中内置了一些图表的主题风格,通过切换不同的主题风格以满足用户的不同需求。
所有的主题风格都存储于matplotlib配置文件夹的stylelib目录中,可以通过访问available变量查看所有可用的主题风格。
python
import matplotlib.style as ms
print(ms.available)

use()函数-----切换图表的主题风格
use(style)
以上函数的参数style表示图表的主题风格,它可以接收matplotlib中所有可用的主题风格的字符串,也可以接收"default"来恢复默认的主题风格。
七、填充区域
matplotlib中提供了多个函数用于填充多边形或区域,分别为fill()、fill_between()和fill_betweenx(),其中fill()函数用于填充多边形,fill_between()或fill_betweenx()函数分别用于填充两条水平曲线或垂直曲线之间的区域。
填充多边形或曲线之间的区域
1、fill()
fill(*args, data=None, facecolor, edgecolor, linewidth, **kwargs)
*args:表示x坐标、y坐标或颜色的序列。
acecolor:表示填充的背景颜色。
edgecolor:表示边框的颜色。
linewidth:表示边框的宽度。
2、fill_between()
fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, data=None, **kwargs)
x:表示x轴坐标的序列。
y1:表示第一条曲线的y轴坐标。
y2:表示第二条曲线的y轴坐标。
where:布尔值,表示要填充区域的条件。
y1>y2说明第一条曲线位于第二条曲线上方时填充;y1<y2说明第二条曲线位于第一条曲线上方时填充
3、fill_betweenx()
fill_betweenx(y, x1, x2=0, where=None, step=None, interpolate=False, data=None,
**kwargs)
y:表示y轴坐标的序列。
x1:表示第一条曲线的x轴坐标。
x2:表示第二条曲线的x轴坐标。
where:布尔值,表示要填充区域的条件。
x1>x2说明第一条曲线位于第二条曲线右方时填充;y1<y2说明第二条曲线位于第一条曲线右方时填充。