Python画图主要用到matplotlib这个库。具体来说是pylab和pyplot这两个子库。这两个库可以满足基本的画图需求。
pylab神器:pylab.rcParams.update(params)。这个函数几乎可以调节图的一切属性,包括但不限于:坐标范围,axes标签字号大小,xtick,ytick标签字号,图线宽,legend字号等。
scatter和plot函数的不同之处
scatter才是离散点的绘制程序,plot准确来说是绘制线图的,当然也可以画离散点。
scatter/scatter3做散点的能力更强,因为他可以对散点进行单独设置所以消耗也比plot/plot3大所以如果每个散点都是一致的时候,还是用plot/plot3好以下如果要做一些plot没法完成的事情那就只能用scatter了
scatter强大,但是较慢。所以如果你只是做实例中的图,plot足够了。
plt.ion()用于连续显示。
#plottherealdatafig=plt.figure()ax=fig.add_subplot(1,1,1)ax.scatter(x_data,y_data)plt.ion()#本次运行请注释,全局运行不要注释plt.show()
首先在python中使用任何第三方库时,都必须先将其引入。即:
importmatplotlib.pyplotasplt1或者:
frommatplotlib.pyplotimport*1.建立空白图fig=plt.figure()也可以指定所建立图的大小
fig=plt.figure(figsize=(4,2))也可以建立一个包含多个子图的图,使用语句:
plt.figure(figsize=(12,6))plt.subplot(231)plt.subplot(232)plt.subplot(233)plt.subplot(234)plt.subplot(235)plt.subplot(236)plt.show()其中subplot()函数中的三个数字,第一个表示Y轴方向的子图个数,第二个表示X轴方向的子图个数,第三个则表示当前要画图的焦点。
当然上述写法并不是唯一的,比如我们也可以这样写:
plt.subplot(111)和plt.subplot(1,1,1)是等价的。意思是将区域分成1行1列,当前画的是第一个图(排序由行至列)。
plt.subplot(211)意思就是将区域分成2行1列,当前画的是第一个图(第一行,第一列)。以此类推,只要不超过10,逗号就可省去。
可以看到图中的x,y轴坐标都是从0到1,当然有时候我们需要其他的坐标起始值。此时可以使用语句指定:
ax1.axis([-1,1,-1,1])或者:
plt.axis([-1,1,-1,1])效果如下:
首先给出一组数据:
x=[1,2,3,4,5]y=[2.3,3.4,1.2,6.6,7.0]A.画散点图*plt.scatter(x,y,color='r',marker='+')plt.show()效果如下:
这里的参数意义:
控制颜色:color为散点的颜色标志,常用color的表示如下:
b---bluec---cyang---greenk----blackm---magentar---redw---whitey----yellow有四种表示颜色的方式:
控制标记风格:marker为散点的标记,标记风格有多种:
.Pointmarker,PixelmarkeroCirclemarkervTriangledownmarker^Triangleupmarker
fig=plt.figure(figsize=(12,6))plt.subplot(121)plt.plot(x,y,color='r',linestyle='-')plt.subplot(122)plt.plot(x,y,color='r',linestyle='--')plt.show()效果如下:
这里有一个新的参数linestyle,控制的是线型的格式:符号和线型之间的对应关系
-实线--短线-.短点相间线:虚点线另外除了给出数据画图之外,我们也可以利用函数表达式进行画图,例如:y=sin(x)
示例:
importmatplotlib.pyplotasplty=[2.3,3.4,1.2,6.6,7.0]plt.figure()plt.pie(y)plt.title('PIE')plt.show()效果如下:
importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[2.3,3.4,1.2,6.6,7.0]plt.figure()plt.bar(x,y)plt.title("bar")plt.show()效果如下:
importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlib.imageasmpimg#2Ddatadelta=0.025x=y=np.arange(-3.0,3.0,delta)X,Y=np.meshgrid(x,y)Z=Y**2+X**2plt.figure(figsize=(12,6))plt.subplot(121)plt.contour(X,Y,Z)plt.colorbar()plt.title("contour")#readimageimg=mpimg.imread('marvin.jpg')plt.subplot(122)plt.imshow(img)plt.title("imshow")plt.show()#plt.savefig("matplot_sample.jpg")效果图:
__author__='wenbaoli'importmatplotlib.pyplotaspltfrommathimport*fromnumpyimport*x=arange(-math.pi,math.pi,0.01)y=[sin(xx)forxxinx]plt.figure()plt.plot(x,y,color='r',linestyle='-')plt.xlabel(u'X')#fillthemeaningofXaxisplt.ylabel(u'Sin(X)')#fillthemeaningofYaxisplt.title(u'sin(x)')#addthetitleofthefigureplt.show()