matplotlib.pyplot.plot 详解

使用matplotlib画条形图

matplotlib.pyplot.plot(* args,scalex = True,scaley = True,data = None** kwargs )

用线条或者标记绘制y和x的关系

">>>"表示python的交互模式,可以在cmd输入python进入,或者有专门的编辑器.如果你在使用非交互式代码,只需要补成plt.plot,最后使用plt.show()就可以展示

呼叫签名:

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

[]代表这个参数是可以选填的。

点或线节点的坐标由(x, y)给出。

可选参数fmt是定义基本格式(如颜色、标记和线型)的一种方便的方法。这是一种快捷的字符串表示法,在下面的Notes部分中进行了描述。

>>>plot(x, y)            # 用默认的线条样式和颜色绘制x和y
>>> plot(x, y, 'bo')  # 用蓝色的圆圈标记绘制x和y,也就是散点图
>>> plot(y)           # y坐标就是y自己的值,x的坐标就是对应的array索引[0-N-1]
>>> plot(y, 'r+')     # ditto, but with red plusses

您可以使用Line2D属性作为关键字参数来对外观进行更多的控制。Line属性和fmt可以混合使用。下面两个调用产生相同的结果:

>>> plot(x, y, 'go--', linewidth=2, markersize=12)
>>> plot(x, y, color='green', marker='o', linestyle='dashed',
...      linewidth=2, markersize=12)

Line2D的属性在下面列出。

需要注意的是,当与fmt冲突时,Line关键字参数优先。比如fmt设置了标记颜色为黄色,同时color设置了green,那就是绿色。

绘制标签数据

有一种方便的方法来绘制带有标记数据的对象(即可以通过索引obj[‘y’]访问的数据)。不提供x和y中的数据,你可以在数据参数中提供对象,并只提供x和y的标签。

例如:

>>> plot('xlabel', 'ylabel', data=obj)

支持所有可索引的对象。这可以是一个字典,一个pandas.Dataframe或者结构化的numpy数组。

这里可能有人尝试了如果用这样的方式绘图是空白:

z={"doc":1,"cat":2,"apple":3}

plt.plot('doc','cat','apple' data=z)

我尝试了一下,这个地方的意思大概是期望这样的数据

data = {'a': [1,2,3],
        'c': [4,5,6],
        'd': [6,7,8]}

如果用这种方式运行可以正确的看到图像

data = {'a': np.arange(50),
        'c': np.random.randint(0, 50, 50),
        'd': np.random.randn(50)}
plt.plot('a', 'c', data=data)

绘制多个数据集

有多种方法可以绘制多个数据集。

  • 最直接的方法就是多次调用plot。例子:

    >>> plot(x1, y1, 'bo')
    >>> plot(x2, y2, 'go')
    
  • 或者,如果您的数据已经是一个2d数组,您可以直接将其传递给x, y。

    例如:一个数组a,其中第一列表示x值,其他列表示y列:

    >>> plot(a[0], a[1:])
    
  • 第三种方法是指定多个集合[x], y, [fmt]组:

    >>> plot(x1, y1, 'g^', x2, y2, 'g-')
    

    在本例中,任何附加的关键字参数都适用于所有数据集。此外,此语法不能与data参数组合。

默认情况下,每一条直线都有一个由“样式循环”指定的不同样式。

比如当一个图有很多条直线的时候,他就会像从循环队列里面取style分配给每条直线。

只有当您希望显式地偏离这些默认值时,才需要fmt和line属性参数。
或者,您也可以使用“‘axes.prop_cycle’ rcParam.”来更改“样式周期”。

参数:

x, y:数组或标量

数据点的水平/垂直坐标。x值是可选的,默认为range(len(y)).也就是y的元素个数

通常,这些参数是一维数组。

它们也可以是标量,或者二维的(在这种情况下,列表示单独的数据集)。

这些参数不能作为关键字传递。

fmt: str,可选

格式字符串,例如
“ro”代表红圈。
有关格式字符串的完整描述,请参阅Notes部分。

格式字符串只是快速设置基本线条属性的缩写。所有这些以及更多的属性关键字参数也可以控制。

此参数不能作为关键字传递。

数据:可索引对象,可选

带有标记数据的对象。
如果给定,则提供标号来绘制x和y。

请注意

从技术上讲,如果第二个标签是有效的fmt,那么在调用中会有一点含糊不清。
plot('n', 'o', data=obj)可以是plt(x, y)或plt(y, fmt)。
在这种情况下,选择前一种写法会发出警告。
您可以通过添加一个空格式字符串plot('n', 'o', '', data=obj)来抑制警告。

返回值:

lines
表示绘制数据的Line2D对象列表。

其他参数

scalex, scaley: bool,可选,默认:True

这些参数确定视图限制是否适用于数据限制。
这些值被传递到autoscale_view。

**kwargs: Line2D属性,可选

kwargs用于指定诸如线标签(用于自动图例)、线宽、抗锯齿、标记面颜色等属性。
例子:

>>> plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2)
>>> plot([1,2,3], [1,4,9], 'rs',  label='line 2')

如果您使用一个plot命令创建多行,则kwargs适用于所有这些行。

以下是可用的Line2D属性列表:

PropertyDescription
agg_filtera filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
alphafloat,设置用于混合的alpha值-不支持所有后端。
animatedbool,设置图画的动画状态
antialiased or aabool,设置是否使用反锯齿渲染。aa是这个属性的别称。
clip_boxBbox是一个可变的边界框,A 2x2 numpy array of the form [[x0, y0], [x1, y1]]
clip_onbool,设置画面是否使用裁剪。
clip_path[(Path, Transform)
color or ccolor
containscallable
dash_capstyle{‘butt’, ‘round’, ‘projecting’}
dash_joinstyle{‘miter’, ‘round’, ‘bevel’}
dashessequence of floats (on/off ink in points) or (None, None)
drawstyle or ds{‘default’, ‘steps’, ‘steps-pre’, ‘steps-mid’, ‘steps-post’}, default: ‘default’
figureFigure
fillstyle{‘full’, ‘left’, ‘right’, ‘bottom’, ‘top’, ‘none’}
gidstr
in_layoutbool
labelobject
linestyle or ls{’-’, ‘–’, ‘-.’, ‘:’, ‘’, (offset, on-off-seq), …}
linewidth or lwfloat
markermarker style
markeredgecolor or meccolor
markeredgewidth or mewfloat
markerfacecolor or mfccolor
markerfacecoloralt or mfcaltcolor
markersize or msfloat
markeveryNone or int or (int, int) or slice or List[int] or float or (float, float)
path_effectsAbstractPathEffect
pickerfloat or callable[[Artist, Event], Tuple[bool, dict]]
pickradiusfloat
rasterizedbool or None
sketch_params(scale: float, length: float, randomness: float)
snapbool or None
solid_capstyle{‘butt’, ‘round’, ‘projecting’}
solid_joinstyle{‘miter’, ‘round’, ‘bevel’}
transformmatplotlib.transforms.Transform
urlstr
visiblebool
xdata1D array
ydata1D array
zorderfloat

Notes

格式字符串

格式字符串由颜色、标记和行组成:

fmt = '[marker][line][color]'

每个选项都是可选的。如果没有提供,则使用样式循环中的值。例外:如果给定线,但没有标记,则数据将是没有标记的线。

也支持其他组合,如 [color][marker][line] ,但注意它们的解析可能是模糊的。

Markers

characterdescription
'.'point marker
','pixel marker
'o'circle marker
'v'triangle_down marker
'^'triangle_up marker
'<'triangle_left marker
'>'triangle_right marker
'1'tri_down marker
'2'tri_up marker
'3'tri_left marker
'4'tri_right marker
's'square marker
'p'pentagon marker
'*'star marker
'h'hexagon1 marker
'H'hexagon2 marker
'+'plus marker
'x'x marker
'D'diamond marker
'd'thin_diamond marker
'|'vline marker
'_'hline marker

Line Styles

characterdescription
'-'solid line style
'--'dashed line style
'-.'dash-dot line style
':'dotted line style

格式字符串例子:

'b'    # blue markers with default shape
'or'   # red circles
'-g'   # green solid line
'--'   # dashed line with default color
'^k:'  # black triangle_up markers connected by a dotted line

Colors

The supported color abbreviations are the single letter codes

charactercolor
'b'blue
'g'green
'r'red
'c'cyan
'm'magenta
'y'yellow
'k'black
'w'white

还有“CN”颜色,它会索引到默认的属性循环。

如果颜色是格式字符串的唯一部分,您还可以使用任何matplotlib.colors 规格,例如全名(‘绿色’)或十六进制字符串(’#008000’)。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值