软件开发技术基础 第4版 课件 6-1 绘图编程技术_第1页
软件开发技术基础 第4版 课件 6-1 绘图编程技术_第2页
软件开发技术基础 第4版 课件 6-1 绘图编程技术_第3页
软件开发技术基础 第4版 课件 6-1 绘图编程技术_第4页
软件开发技术基础 第4版 课件 6-1 绘图编程技术_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matplotlib绘图库简介什么是matplotlib库Matplotlib是Python语言在二维绘图方面使用最广泛的一个库其设计借鉴了MATLAB的绘图功能,可以绘制线图、散点图、等高线图、直方图、柱状图、3D图形、甚至图形动画等等。它可以和科学计算库NumPy很好地结合,将用户的计算数据图形化。它提供了多种图形存储格式,比如存储为矢量图、位图、动画等。西安交通大学计算机教学实验中心2安装matplotlib首先使用win+R输入cmd命令打开命令窗口,再使用以下命令进行安装:

pipinstallmatplotlib这里pip是安装python时,安装的一个工具。3Matplotlib图形构成4Figure:指整个图形。可理解成绘图板;Axes:绘图区,它被包含在Figure中。一个Figure可包含多个Axes;Axis:指坐标轴及相关刻度、标签等;Artist:除去坐标轴之外,所有绘制在图纸上的元素都属于Artist对象,例如标题、直线、曲线、直方图、饼图等。1.绘制散点图scatter(x,y,s,c,marker,alpha,linewidths)参数说明:x,y:长度相同的两个数组,表示点坐标s:点的大小,默认20,可以是数组(每个值为点的大小)c:点的颜色,可以是颜色数组(每个值为对应点颜色)marker:点的样式,默认小圆点(即样式'o')alpha:透明度设置,取值在0(透明)到1(不透明)之间linewidths:标记点的边缘线的宽度,默认为1.5。西安交通大学计算机教学实验中心51.绘制散点图importmatplotlib.pyplotasplt

#导入绘图模块importnumpyasnp

#导入Numpy模块x=np.array([1,2,3,4,5,6])#点的x坐标y=np.array([1.1,4.5,1.9,3.3,6.0,5.1])#点的y坐标plt.scatter(x,y)#绘图函数plt.show()#显示图形西安交通大学计算机教学实验中心61.绘制散点图importmatplotlib.pyplotaspltimportnumpyasnpx=np.array([1.5,2.2,2.4,3,3.1,4,1.8,2.6,3.5]) #点的x坐标y=np.array([1.6,2.2,2.5,3.3,3.5,4.5,1.9,3.1,4.0]) #点的y坐标sizes=np.array([160,990,700,1000,400,60,80,100,200])alp=0.5

#设置透明度,取值在0(透明)到1(不透明)之间colors=np.array(['red','green','black','orange','brown','y','c','b','#18c900'])plt.scatter(x,y,s=sizes,c=colors,alpha=alp) plt.show()西安交通大学计算机教学实验中心72.绘制直线和曲线西安交通大学计算机教学实验中心8plot(x,y,color,linestyle,linewidth,marker,markersize)参数说明:x,y:两个数组,表示一系列点的x、y坐标。将依次连接这些点color:线的颜色,取值见前文绘制散点图部分linestyle,linewidth:线型、线宽(以像素为单位)

marker,markersize:点的标记形式及大小线型字符说明-实线--虚线-.点划线:点线空不绘制点标记符号描述o实心圆v下三角^上三角<

左三角>

右三角s正方形*星号+加号x乘号2.绘制直线和曲线西安交通大学计算机教学实验中心9绘制cos函数曲线importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(0,np.pi,10)#在[0,π]上均匀生成10个点y_cos=np.cos(x) #计算10个点的cos值y_cos_h=y_cos/2 #将10个点的每个cos值除以2plt.plot(x,y_cos,color='red',marker='+',linestyle='--')plt.plot(x,y_cos_h,color='b',marker='^',linestyle=':')plt.show()2.绘制直线和曲线importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(0,np.pi,10) #在[0,π]上均匀生成10个点y_sin=np.sin(x) #计算10个点的sin值y_sin_half=y_sin/2 #将10个点的每个sin值除以2plt.plot(x,y_sin,'bs-',linewidth=2,markersize=6)plt.plot(x,y_sin_half,'ro',linewidth=2,markersize=6)plt.show()3.绘制柱状图bar(x,height,width,bottom,color,align,edgecolor)barh(y,width,height,left,color,align,edgecolor)

关于bar()函数的参数:x:数组,指定所有柱图的水平坐标。height:数组,指定柱图的高度,也就是需要展示的数据的大小。width:实数,指定柱图的宽度,默认0.8。bottom:数组,指定每个柱图的起始高度。align:柱图水平对齐方式,可选center(中心对齐)或edge(边缘对齐)。edgecolor:柱图边框的颜色。3.绘制柱状图importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(4)y1=np.array([2.5,3.3,4.6,1.5])y2=np.array([1.5,2.3,3.0,1.5])plt.bar(x,y1,0.5,color='y',align='center',edgecolor='k',linewidth=1)#下面绘制的第2组柱状图以y1为底部坐标,达到堆叠效果plt.bar(x,y1,0.5,color='m',align='center',edgecolor='k',linewidth=1,bottom=y1)plt.show()4.绘制直方图 hist(x,bins,range,density,color,edgecolor,alpha)参数说明:x:数组,存储要计算直方图的数据。bins:直方图的柱数,默认为10。range:所考察的数值范围。默认值为所有数据的最小值到最大值。density:默认为False,表示频数直方图;若为True,则表示频率直方图。color:直方图颜色。edgecolor:直方图每个柱形边框颜色。alpha:透明度,取值0到1,0—透明,1—不透明4.绘制直方图importnumpyasnpimportmatplotlib.pyplotaspltdata=np.random.standard_normal(1000)#按正态分布取值,生成100个数n_bins=16plt.hist(data,n_bins,color='c',edgecolor='k')plt.show()5.绘制饼图importmatplotlib.pyplotaspltnum=[20,30,40,50]grade=['A','B','C','D']clr=['lightgreen','cyan','red','yellow']exp=(0.1,0,0,0)plt.pie(num,explode=exp,labels=grade,colors=clr,autopct='%.1f%%')plt.show()字体font1={'family':'calibri','style':'italic','color':'r','size':15}这里属性family、style、color、size分别是字体名、是否为粗体或斜体、颜色、大小。函数xlabel()和ylabel()用来设置x轴和y轴的标签,函数title()用来设置标题。例如:font1={"family":"Simsun","fontsize":13,"color":"b"} #定义字体font1plt.xlabel("这是x轴标签",font1)

#在xlabel()中使用font1plt.title("这是标题",font1) #在title()中使用font1坐标轴和刻度设置importmatplotlib.pyplotaspltimportnumpyasnpplt.ylim(-4,4)ax=plt.gca() #获得坐标轴对象ax.spines['left'].set_position('center') #设置y轴居中ax.spines['bottom'].set_position(('data',0)) #设置x轴位于数据y轴0处ax.spines['right'].set_visible(False) #设置右侧边框不可见ax.spines['top'].set_visible(False) #设置上边框不可见plt.tick_params(colors='b',labelsize=12)#设置坐标轴上字体颜色、尺寸x=np.linspace(-3,3,60)y=x**3-3*xplt.plot(x,y,'g-')plt.text(-3,3,'$f(x)=x^3-3x$',fontsize=14) #显示函数方程plt.show()实现一页多图使用pyplot的subplot()函数可以在一幅图(Figure)中绘制多个子图,其函数原型为:subplot(nrows,ncols,plot_num)参数说明:nrows,ncols:分别为所包含子图的总行数、总列数。plot_num:将要绘制的子图号。所有子图自左向右、自上而下从1开始编号。importmatplotlib.pyplotaspltimportnumpyasnpplt.figure(figsize=(7.3,5.5),dpi=100) plt.subplots_adjust(wspace=0.3,hspace=0.4) #开始绘制1号子图

x1=np.array([0,5,10])y1=np.array([0,4,6])z1=np.array([2,6,8])plt.subplot(2,2,1) plt.plot(x1,y1,'rs-',label='A1')plt.plot(x1,z1,'go-.',label='A2')plt.legend()plt.title("plot1")#开始绘制2号子图x2=np.array([1,2,3,4])y2=np.array([1,2,2.5,2.6])z2=np.array([2,0.8,0.2,0])plt.subplot(2,2,2) plt.plot(x2,y2)plt.plot(x2,z2)plt.legend(['B1','B2'])plt.title("plot2")#开始绘制3号子图x3=np.array([1,2,3,4,5,6])y3=np.array([6,10,7,6,3.8,7])z3=np.array([8,10,6,5,2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论