参考:http://matplotlib.org/api/pyplot_api.html
画图功能总结(2):http://blog.csdn.net/mmc2015/article/details/48222611
1、matplotlib.pyplot.plot(*args, **kwargs),最简单的沿坐标轴划线函数:
下面四种格式都合法:
plot(x, y) # plot x and y using default line style and color plot(x, y, 'bo') # plot x and y using blue circle markers plot(y) # plot y using x as index array 0..N-1 plot(y, 'r+') # ditto, but with red plusses
<pre name="code" class="python">import numpy as np import matplotlib.pyplot as plt x1=np.arange(0,5,0.1) y1=np.sin(x1) x2=np.linspace(1,10,20,True) y2=np.cos(x2) plt.plot(x1,y1,'b^')也可以同时画一组图:
plt.plot(x1, y1, 'go', x2, y2, 'r-')
如果颜色不显示指出,则默认循环使用不同的颜色,支持的颜色有:
character | color |
---|---|
‘b’ | blue |
‘g’ | green |
‘r’ | red |
‘c’ | cyan |
‘m’ | magenta |
‘y’ | yellow |
‘k’ | black |
‘w’ | white |
character | description |
---|---|
'-' | solid line style |
'--' | dashed line style |
'-.' | dash-dot line style |
':' | dotted line style |
'.' | 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 |
plt.plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2) plt.plot([1,2,3], [1,4,9], 'rs', label='line 2') plt.legend()
指定坐标范围:
plt.plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2) plt.plot([1,2,3], [1,4,9], 'rs', label='line 2') plt.<strong>axis(</strong>[0, 4, 0, 10]) plt.legend()
添加坐标轴说明和标题说明:
plt.plot([1,2,3], [1,2,3], 'go-', <strong>label=</strong>'line 1', linewidth=2) plt.plot([1,2,3], [1,4,9], 'rs', label='line 2') plt.axis([0, 4, 0, 10]) plt.<strong>xlabel</strong>('data x') plt.ylabel('target y') plt.<strong>title</strong>('test plot') plt.<strong>legend()</strong>
plt.grid() plt.legend(['3','4','5'], loc='upper right') plt.show()
上面所有的格式都可以通过关键词来控制(格式,即参数kwargs):
plot(x, y, color='green', linestyle='dashed', marker='o', markerfacecolor='blue', markersize=12).The kwargs are Line2D properties:
Property | Description |
---|---|
agg_filter | unknown |
alpha | float (0.0 transparent through 1.0 opaque) |
animated | [True | False] |
antialiased or aa | [True | False] |
axes | an Axes instance |
clip_box | a matplotlib.transforms.Bbox instance |
clip_on | [True | False] |
clip_path | [ (Path, Transform) | Patch | None ] |
color or c | any matplotlib color |
contains | a callable function |
dash_capstyle | [‘butt’ | ‘round’ | ‘projecting’] |
dash_joinstyle | [‘miter’ | ‘round’ | ‘bevel’] |
dashes | sequence of on/off ink in points |
drawstyle | [‘default’ | ‘steps’ | ‘steps-pre’ | ‘steps-mid’ | ‘steps-post’] |
figure | a matplotlib.figure.Figure instance |
fillstyle | [‘full’ | ‘left’ | ‘right’ | ‘bottom’ | ‘top’ | ‘none’] |
gid | an id string |
label | string or anything printable with ‘%s’ conversion. |
linestyle or ls | ['-' | '--' | '-.' | ':' | 'None' | ' ' | ''] |
linewidth or lw | float value in points |
lod | [True | False] |
marker | A valid marker style |
markeredgecolor or mec | any matplotlib color |
markeredgewidth or mew | float value in points |
markerfacecolor or mfc | any matplotlib color |
markerfacecoloralt or mfcalt | any matplotlib color |
markersize or ms | float |
markevery | [None | int | length-2 tuple of int | slice | list/array of int | float | length-2 tuple of float] |
path_effects | unknown |
picker | float distance in points or callable pick function fn(artist, event) |
pickradius | float distance in points |
rasterized | [True | False | None] |
sketch_params | unknown |
snap | unknown |
solid_capstyle | [‘butt’ | ‘round’ | ‘projecting’] |
solid_joinstyle | [‘miter’ | ‘round’ | ‘bevel’] |
transform | a matplotlib.transforms.Transform instance |
url | a url string |
visible | [True | False] |
xdata | 1D array |
ydata | 1D array |
zorder | any number |
2、matplotlib.pyplot.scatter(x, y, s=20, c=u'b', marker=u'o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None,verts=None, hold=None, **kwargs)散点图:
本质上和plot没甚区别,但要注意:
1)不能同时画多个曲线,plt.scatter(x1, y1, c='b', marker='o', x2, y2, c='r', marker='^', s=5)不合法。
2)color、marker等不能同时作为一个参数,plt.scatter(x1, y1, 'bo', s=5)不合法。
3)给个例子:
plt.scatter(x1, y1, c='b', marker='o', s=5)
4)我们看到,scatter会自动在坐标的头尾加上“延长”的部分,但plot如果不指定axis,则不会延长。
5)为了同时在一个图上画多条曲线,可以使用hold关键字:
(When hold is True, subsequent plot commands will be added to the current axes. When hold is False, the current axes and figure will be cleared on the next plot command.)
plt.scatter(x1, y1, s=10, c='b', marker='o', label='test plot 1') plt.<strong>hold(True)</strong> plt.scatter(x2, y2, s=5, c='r', marker='^', label='test plot 2') plt.legend()
如果不使用hold,效果如下:
plt.scatter(x1, y1, s=10, c='b', marker='o', label='test plot 1') plt.hold(<strong>False)</strong> plt.scatter(x2, y2, s=5, c='r', marker='^', label='test plot 2') plt.legend()
待续。。。。