matplotlib之pyplot模块plot函数基础一(函数功能、xy参数基本取值,多组数据)简单说明了plot函数绘制线条的基本功能。
plot函数的基本调用签名为plot([x], y, [fmt], *, data=None, **kwargs)
那么线条的外观该如何定义呢?plot函数与线条外观相关的参数有两个:

  • 格式字符串fmtfmt'[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
  • 案例:1C11matplotlib提示Illegal format string "1C11"; two marker symbols,将其修改为1C1正常显示。

通过以上案例可以看出Cn颜色格式和标记字符'1', '2', '3', '4'在一起组合时一定要小心!

三部分缺失情况演示

前面提到三部分都是可选的,没有提供的部分将使用默认属性循环中的属性,具体缺失情况做以下演示。
比较特殊的情况:

  • 如果fmt字符串中提供了标记部分没有提供线形部分,将不会绘制直线
  • 如果不提供fmt字符串,则只绘制直线,不绘制标记。
    在这里插入图片描述
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐