plot函数的基本调用签名为plot([x], y, [fmt], *, data=None, **kwargs)
plot
函数与线条外观相关的参数有两个:
- 格式字符串
fmt
:fmt
由'[marker][line][color]'
即标记、线形、颜色三部分组成。 Line2d
关键字参数**kwargs
:由一系列Line2d
属性相关的关键词参数构成。
这两个参数都可以定义线条的外观属性。
格式字符串fmt
比较简单,只能定义标记类型、线形、颜色这三类线条属性。matplotlib之pyplot模块plot函数基础二(线条外观:格式字符串fmt)简单说明了plot
函数使用格式字符串fmt
参数
关键字参数**kwargs
功能比较强大,除了fmt
能够定义的内容外,还可以定义线条宽度、标记大小、标记外框属性等。
如果两个参数都对某一外观属性进行了定义,以关键字参数定义为准。即关键字参数**kwargs
参数优先级高于fmt
参数。
关键字参数**kwargs
常用Line2d
属性
由于plot
函数绘制的结果为Line2d
对象,因此关键字参数**kwargs
为Line2d
属性,常用的属性、属性别名、功能、取值如下表所示。
属性名 | 别名 | 功能 | 取值 |
---|---|---|---|
color | c | 线条颜色 | color |
linestyle | ls | 线形 | ‘-’, ‘–’, ‘-.’, ‘:’, ‘’,空值则不显示线条 |
linewidth | lw | 线宽 | 浮点数 |
marker | 标记样式 | 标记样式字符串或MarkerStyle |
|
markeredgecolor | mec | 标记边框颜色 | color |
markeredgewidth | mew | 标记边框宽度 | 浮点数 |
markerfacecolor | mfc | 标记颜色 | color |
markersize | ms | 标记大小 | 浮点数 |
关键字参数**kwargs
的默认值
关键字参数**kwargs
的默认值可以认为直接读取rcParams
与线条相关的参数,因此,当plot
函数没有外观属性时就会按照rcParams
参数进行设置。
部分取值如下:
#lines.linewidth: 1.5 # line width in points
#lines.linestyle: - # solid line
#lines.color: C0 # has no affect on plot(); see axes.prop_cycle
#lines.marker: None # the default marker
#lines.markerfacecolor: auto # the default marker face color
#lines.markeredgecolor: auto # the default marker edge color
#lines.markeredgewidth: 1.0 # the line width around the marker symbol
#lines.markersize: 6 # marker size, in points
#lines.antialiased: True # render lines in antialiased (no jaggies)
关键字参数**kwargs
应用演示
下面代码演示了常见关键字参数**kwargs
的使用。
import matplotlib.pyplot as plt
plt.plot([1, 1], color='#ff0000', linestyle="--", linewidth=3, marker='^', markersize=10,
markerfacecolor='#00ff00', markeredgecolor='#ff0000', markeredgewidth=2)
# 参数别名演示
plt.plot([1.5, 1.5], c='#ff0000', ls="--", lw=3, marker='^', ms=10,
mfc='#00ff00', mec='#ff0000', mew=2)
plt.axis('off')
plt.show()
关键字参数**kwargs
与格式字符串fmt
混合应用演示
根据图可知,关键字参数**kwargs
在线条外观属性设置中拥有高优先级,会覆盖掉格式字符串fmt
的设置。
import matplotlib.pyplot as plt
plt.plot([1, 1], 'ob--',color='#ff0000', linestyle="-.", linewidth=3, marker='^')
plt.axis('off')
plt.show()