# coding: utf-8 # In[3]: from matplotlib import pyplot as plt import numpy as np #matplotlib 是面向对象的绘图,每个元素都有一个对象与之对应 #为了绘图方便,matplotlib提供matplot模块,将面向对象的绘图库包装成只使用函数的api # In[20]: get_ipython().magic(u'matplotlib inline') #%config InlineBackend.close_figures = False # In[10]: x = np.linspace(0,10,1000) y = np.sin(x) z = np.cos(x**2) # In[22]: plt.figure(figsize=(8,4),dpi =200)#新建一个figure(图表)并将他作为当前figure对象 plt.plot(x,y,label = '$sin(x)$',color='g',linewidth = 2)#label将在图示中显示,如前后有$,则将其转化为数学公式,linewidth 可缩写为lw plt.plot(x,z,"b--",label = '$cos(x)$')#"b--"b代表蓝色,--代表虚线 # In[23]: #plt.ylim(0,0.5) #plt.xlim(2,4) plt.xlabel('Times') plt.ylabel('Volt') plt.legend()#显示图示 plt.show() plt.savefig('/home/fangsh/dlym/test.png',dpi = 120)#设置分辨率为120,本例figsize=(8,4),所以图像分辨率是960x480 #plt.savefig 与plt.imsave()的区别 #plt.savefig(outp_dir)保存当前的图表fig #plt.imsave(outp_dir,img)保存img # In[34]: #pyplot模块保存了当前图表以及当前子图的信息 #可通过gcf()和gca()获得这两个对象 gcf是gir current figure的缩写,gca是get current axes的缩写 #pyplot大多函数都是对当前的对象(figure或者axes)进行处理,如plot(),xlabel(),savefig() #可调用对象的属相设置方法set_*()或者plot模块的属相设置函数setp()来设置属性 #同样可通过对象的get_*()和plot模块的getp()老获取对象属性 x = np.arange(0,5,0.1) plt.figure(figsize=(4,3)) line = plt.plot(x,np.sin(x),x,np.cos(x))[1]#plot返回一个元素类型为line2D的列表(每个元素代表一个曲线) line.set_alpha(0.5) plt.setp(line,color="b",lw=5) print line.get_color(),plt.getp(line,'axes')#getp()指定属性名只返回对象的某个属性,不指定属性名输出对象的所有属性和值 # In[40]: #用subplot绘制多子图 #subplot(numrows,numcols,plotnum)整个绘图区域被分为numrow行和numcols列,plot指定所创建的axes对象的区域 #如果numrows,numcols,plotnum都小于10,可将是三个数写成一个整数。 #subplot所创建的对象,可用变量保存,用sca()函数可选择使之成为当前axes对象。 #plt.figure(2)来选择要操作的图表序号 fig,axes = plt.subplots(2,3)#subplots同时创建多个子图,并返回当前的figure(图表)和子图列表 [a,b,c],[d,e,f] = axes #可调用subplot2grid()进行更复杂的表格布局。类似与excel #bplot2grid(shape,rowspan=1.colspan=1,**kwargs) #shape表格形状的元祖,loc为子图左上角的坐标(行,列),rowspan.colspan子图所在的行数列数 fig = plt.figure(figsize=(6,6)) ax1= plt.subplot2grid((3,3),(0,0),colspan=3) ax2 = plt.subplot2grid((3,3),(1,0),rowspan=2,colspan=2) ax3 = plt.subplot2grid((3,3),(1,2),rowspan=2) # In[48]: #散点图的绘制------------画数据样本 plt.figure(figsize=(8,4)) x = np.random.random(100) y = np.random.random(100) plt.scatter(x,y,s=x*1000,c=y,marker=(5,1),alpha=0.8,lw=3,facecolor='none') #s设置大小,c颜色可以是一维数组,也可以是二维数组,表示每个点的RGB颜色 #marker设置点的形状是一个元祖(),第一个代表多边形的边数,第二个代表多边形的形状 #alpha设置透明度,lw是线宽,facecolors ='none'代表三列点没有填充色 # In[ ]: #等高图的绘制------------画决策边界 #plt.contourf(x,y,z)和plt.contour(x,y,z)用于绘制三维图形,x,y是等长的一维数组,z为二维数据表示(x,y)处的函数映射值。 #plt.contour(x,y,z)不同的分割线,plt.contourf(x,y,z)会在分割线之间填充颜色,常用于机器学习模型的可视化 #可以为图表fig添加事件 fig.canvas.mpl_connect('key_press_event',on_key_press) #'key_press_event'事件发生时,执行on_key_press函数 #支持的事件 # button_press_event 按下鼠标 # button_release_event 释放鼠标按键 # key_press_event 按下键盘按键 # key_release_event 释放键盘按键 # figure_leave_event 鼠标移出图表 # axes_enter_enevt 鼠标移入子图 # axes_leave_enevt 鼠标移出子图
matpyplotlib 简单使用小结
最新推荐文章于 2022-03-31 14:10:44 发布