使用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属性列表:
Property | Description |
---|---|
agg_filter | a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array |
alpha | float,设置用于混合的alpha值-不支持所有后端。 |
animated | bool,设置图画的动画状态 |
antialiased or aa | bool,设置是否使用反锯齿渲染。aa是这个属性的别称。 |
clip_box | Bbox 是一个可变的边界框,A 2x2 numpy array of the form [[x0, y0], [x1, y1]] 。 |
clip_on | bool,设置画面是否使用裁剪。 |
clip_path | [(Path , Transform ) |
color or c | color |
contains | callable |
dash_capstyle | {‘butt’, ‘round’, ‘projecting’} |
dash_joinstyle | {‘miter’, ‘round’, ‘bevel’} |
dashes | sequence of floats (on/off ink in points) or (None, None) |
drawstyle or ds | {‘default’, ‘steps’, ‘steps-pre’, ‘steps-mid’, ‘steps-post’}, default: ‘default’ |
figure | Figure |
fillstyle | {‘full’, ‘left’, ‘right’, ‘bottom’, ‘top’, ‘none’} |
gid | str |
in_layout | bool |
label | object |
linestyle or ls | {’-’, ‘–’, ‘-.’, ‘:’, ‘’, (offset, on-off-seq), …} |
linewidth or lw | float |
marker | marker style |
markeredgecolor or mec | color |
markeredgewidth or mew | float |
markerfacecolor or mfc | color |
markerfacecoloralt or mfcalt | color |
markersize or ms | float |
markevery | None or int or (int, int) or slice or List[int] or float or (float, float) |
path_effects | AbstractPathEffect |
picker | float or callable[[Artist, Event], Tuple[bool, dict]] |
pickradius | float |
rasterized | bool or None |
sketch_params | (scale: float, length: float, randomness: float) |
snap | bool or None |
solid_capstyle | {‘butt’, ‘round’, ‘projecting’} |
solid_joinstyle | {‘miter’, ‘round’, ‘bevel’} |
transform | matplotlib.transforms.Transform |
url | str |
visible | bool |
xdata | 1D array |
ydata | 1D array |
zorder | float |
Notes
格式字符串
格式字符串由颜色、标记和行组成:
fmt = '[marker][line][color]'
每个选项都是可选的。如果没有提供,则使用样式循环中的值。例外:如果给定线,但没有标记,则数据将是没有标记的线。
也支持其他组合,如 [color][marker][line]
,但注意它们的解析可能是模糊的。
Markers
character | description |
---|---|
'.' | 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
character | description |
---|---|
'-' | 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
character | color |
---|---|
'b' | blue |
'g' | green |
'r' | red |
'c' | cyan |
'm' | magenta |
'y' | yellow |
'k' | black |
'w' | white |
还有“CN”颜色,它会索引到默认的属性循环。
如果颜色是格式字符串的唯一部分,您还可以使用任何matplotlib.colors
规格,例如全名(‘绿色’)或十六进制字符串(’#008000’)。