matplotlib之pyplot模块plot函数基础一(函数功能、xy参数基本取值,多组数据)简单说明了plot
函数绘制线条的基本功能。
plot函数的基本调用签名为plot([x], y, [fmt], *, data=None, **kwargs)
那么线条的外观该如何定义呢?plot
函数与线条外观相关的参数有两个:
- 格式字符串
fmt
:fmt
由'[marker][line][color]'
即标记、线形、颜色三部分组成。 Line2d
关键字参数**kwargs
:由一系列Line2d
属性相关的关键词参数构成。
这两个参数都可以定义线条的外观属性。
格式字符串fmt
比较简单,只能定义标记类型、线形、颜色这三类线条属性。
关键字参数**kwargs
功能比较强大,除了fmt
能够定义的内容外,还可以定义线条宽度、标记大小、标记外框属性等。
如果两个参数都对某一外观属性进行了定义,以关键字参数定义为准。即关键字参数**kwargs
参数优先级高于fmt
参数。
格式字符串fmt
参数的具体定义方式如下:
格式字符串fmt
fmt
由'[marker][line][color]'
即线条的标记、线形、颜色三部分组成。
三部分的顺序不是固定的,可以随意组合(特例后面会演示)。
三部分都是可选的,没有提供的部分将使用默认属性循环中的属性(特例后面会演示)。
标记
标记的取值范围为:'.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4', 's', 'p', '*', 'h', 'H', '+', 'x', 'D', 'd', '|', '_'
。
标记字符与外观对应关系如下图所示。
线形
线形的取值范围为:'-', '--', '-.', ':'
线形字符与外观对应关系如下图所示。
颜色
fmt
支持的颜色定义格式比较复杂:
- 单个颜色字符:取值范围为
'r', 'g', 'b', 'c','m','y','k'
。 Cn
格式颜色循环。- 其他颜色定义格式,比如16进制颜色字符串,灰度字符串,xkcd颜色字符串,tableau颜色字符串等。
前两种颜色定义格式可以和标记、线形混合使用,其他格式只能用在ftm
只有颜色部分的情况下。
颜色定义格式与外观对应关系如下图所示。
三部分顺序打乱情况演示
前面讲到格式字符串fmt
标记、线形、颜色三部分的顺序不是固定的,可以随意组合,下面通过案例进行演示。
从下图可知标记v
、线形-.
、颜色C5
三部分字符全排列的6种情况显示的线条外观一致。
组合失败部分案例说明
由于标记中支持'1', '2', '3', '4'
,颜色中支持Cn
格式,因此会如下失败的fmt
字符串。
- 案例:
'C12'
。Cn
颜色格式之后的数字都会作为色彩循环。如果用C1
作为颜色,2
作为标记,那么这个格式字符串将会被理解为单一的颜色C12
- 案例:
1C11
。matplotlib
提示Illegal format string "1C11"; two marker symbols
,将其修改为1C1
正常显示。
通过以上案例可以看出Cn
颜色格式和标记字符'1', '2', '3', '4'
在一起组合时一定要小心!
三部分缺失情况演示
前面提到三部分都是可选的,没有提供的部分将使用默认属性循环中的属性,具体缺失情况做以下演示。
比较特殊的情况:
- 如果
fmt
字符串中提供了标记部分
而没有提供线形部分
,将不会绘制直线
! - 如果不提供
fmt
字符串,则只绘制直线,不绘制标记。