import numpy as np ‘‘‘使用matplotlib绘图主要是用到其pyplot模块,它可以程序化生成多种多样的图表, 只需要简单的函数就可以自主化定制图表,添加文本、点、线、颜色、图像等元素。‘‘‘ import matplotlib.pyplot as plt ‘‘‘linspace在指定的间隔内返回均匀间隔的数字。 返回num均匀分布的样本,在[start, stop]。 这个区间的端点可以任意的被排除在外。‘‘‘
#默认的线形和颜色 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(1)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c) plt.plot(x,s) plt.title(‘cos & sin‘) plt.show()
#改变线形和颜色 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(1)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* plt.title(‘cos & sin‘) plt.show()
#加上图例 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(13)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* plt.legend(loc=‘upper left‘)#显示图例在左上方,不指定位置,默认在右上方 plt.title(‘cos & sin‘) plt.show()
#调整出横纵坐标 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(13)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* ax=plt.gca()#轴的编辑器 ax.spines["right"].set_color(‘none‘)#右边框隐藏 ax.spines["top"].set_color(‘none‘)#上边框隐藏 ax.spines[‘left‘].set_position((‘data‘,0))#将左边框移动到数据为0的位置 ax.spines[‘bottom‘].set_position((‘data‘,0))#将右边框移动到数据为0的位置 ax.xaxis.set_ticks_position(‘bottom‘)#刻度显示在下方 ax.yaxis.set_ticks_position(‘left‘)#刻度显示在左方 plt.legend(loc=‘upper left‘)#显示图例在左上方 plt.title(‘cos & sin‘) plt.show()
#X轴和Y轴添加标签 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(13)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* ax=plt.gca()#轴的编辑器 ax.spines["right"].set_color(‘none‘)#右边框隐藏 ax.spines["top"].set_color(‘none‘)#上边框隐藏 ax.spines[‘left‘].set_position((‘data‘,0))#将左边框移动到数据为0的位置 ax.spines[‘bottom‘].set_position((‘data‘,0))#将右边框移动到数据为0的位置 ax.xaxis.set_ticks_position(‘bottom‘)#刻度显示在下方 ax.yaxis.set_ticks_position(‘left‘)#刻度显示在左方 plt.xticks([-np.pi,-np.pi/2,0,np.pi,np.pi/2], [r‘$-\pi$‘,r‘$-\pi/2$‘,r‘$0$‘,r‘$+\pi/2$‘,r‘$+\pi$‘])#x轴加标签 plt.yticks(np.linspace(-1,1,5,endpoint=True))#y轴加标签 plt.legend(loc=‘upper left‘)#显示图例在左上方 plt.title(‘cos & sin‘) plt.show()
# plt.xticks(x,x[::1])
#第一个数组参数是标示的位置,第二个数组是标示的文字(省略为数字),两个数组中的元素一一对应
#标签调整字体,增加外框和背景颜色 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(13)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* ax=plt.gca()#轴的编辑器 ax.spines["right"].set_color(‘none‘)#右边框隐藏 ax.spines["top"].set_color(‘none‘)#上边框隐藏 ax.spines[‘left‘].set_position((‘data‘,0))#将左边框移动到数据为0的位置 ax.spines[‘bottom‘].set_position((‘data‘,0))#将右边框移动到数据为0的位置 ax.xaxis.set_ticks_position(‘bottom‘)#刻度显示在下方 ax.yaxis.set_ticks_position(‘left‘)#刻度显示在左方 plt.xticks([-np.pi,-np.pi/2,0,np.pi,np.pi/2], [r‘$-\pi$‘,r‘$-\pi/2$‘,r‘$0$‘,r‘$+\pi/2$‘,r‘$+\pi$‘])#x轴加标签 plt.yticks(np.linspace(-1,1,5,endpoint=True))#y轴加标签 for label in ax.get_xticklabels()+ax.get_yticklabels(): label.set_fontsize(16)#标签调整字体 label.set_bbox(dict(facecolor=‘red‘,edgecolor=‘blue‘,alpha=0.5))#给标签增加外框和背景颜色 plt.legend(loc=‘upper left‘)#显示图例在左上方 plt.title(‘cos & sin‘) plt.show()
#画线和添加注释 x=np.linspace(-np.pi,np.pi,256,endpoint=True)#retstep= True,显示步长,endpoint=True,包含端点,false不包含 c,s=np.cos(x),np.sin(x) plt.figure(9)#新建一个名叫 Figure1的画图窗口 #fig = plt.figure(figsize=(a, b), dpi=dpi) ‘‘‘figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 dpi 为设置图形每英寸的点数‘‘‘ plt.plot(x,c,color=‘blue‘,linewidth=2.0,linestyle=‘-‘,label=‘cos‘,alpha=0.5)#alpha指定透明度 plt.plot(x,s,‘g*‘,label=‘sin‘)#另外一种表示颜色,g表示颜色为绿色,*表示线型为* plt.title(‘cos & sin‘) ax=plt.gca()#轴的编辑器 ax.spines["right"].set_color(‘none‘)#右边框隐藏 ax.spines["top"].set_color(‘none‘)#上边框隐藏 ax.spines[‘left‘].set_position((‘data‘,0))#将左边框移动到数据为0的位置 ax.spines[‘bottom‘].set_position((‘data‘,0))#将右边框移动到数据为0的位置 ax.xaxis.set_ticks_position(‘bottom‘)#刻度显示在下方 ax.yaxis.set_ticks_position(‘left‘)#刻度显示在左方 plt.xticks([-np.pi,-np.pi/2,0,np.pi,np.pi/2], [r‘$-\pi$‘,r‘$-\pi/2$‘,r‘$0$‘,r‘$+\pi/2$‘,r‘$+\pi$‘])#x轴加标签 plt.yticks(np.linspace(-1,1,5,endpoint=True))#y轴加标签 for label in ax.get_xticklabels()+ax.get_yticklabels(): label.set_fontsize(16) #label.set_bbox(dict(facecolor=‘white‘,edgecolor=‘none‘,alpha=1)) plt.legend(loc=‘upper left‘)#显示图例在左上方 #plt.grid()#加上网格线 #plt.axis([-1,1,-0.5,1])#显示范围,x轴范围从-1到1,y轴范围从-0.5到1 plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color=‘green‘,alpha=0.25) t=1 #plt.plot画折线,在(t,0),(t,cos(t))画一条线,相当于画了一条垂直线,设置颜色,线宽和样式 plt.plot([t,t],[0,np.cos(t)],‘y‘,linewidth=3,linestyle=‘--‘) #plt.annotate()添加注释,xy 为被注释的坐标点,xycoords 参数data使用被注释对象的坐标系统(默认),xytext 为注释文字的坐标位置,arrowprops #箭头参数,参数类型为字典dict plt.annotate(‘cos(1)‘,xy=(t,np.cos(1)),xycoords=‘data‘,xytext=(+10,+30),textcoords=‘offset points‘,arrowprops=dict(arrowstyle=‘->‘,connectionstyle=‘arc3,rad=.2‘)) plt.xlabel(‘X‘) #X轴标签 plt.ylabel(‘Y‘) #Y轴标签 plt.show()
#for i in range()用法 import random, string length = 7 s1 = [random.randint(1,20) for i in range(length)]#生成7个随机数 print(s1) ‘‘‘for i in range ()作用: range()是一个函数, for i in range () 就是给i赋值: 比如 for i in range (1,3): 就是把1,2依次赋值给i‘‘‘ for i in range(length): print(i) chars = string.ascii_letters + string.digits print(chars) s = [random.choice(chars) for i in range(length)] print(s) x= range(1, 21) #b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象 #b = a[i:j:s]表示:i,j与上面的一样,但s表示步进,缺省为1.
plt.fill_between()函数用法
plt.fill_between(x,x>0,c,c>0.5,color="green")
#代码中,x>0是逻辑语言,即在x>0时为真,从横坐标为1的地方开始填充,x<=0时为假,从横坐标为0的地方开始填充,其中c为纵坐标约束纵向上的填充范围(详细说明见附图中的黑框范围和红色箭头)。(参考于https://www.imooc.com/qadetail/261330)
fill_between 也可以填充两个函数之间的区域
# 两个函数之间的区域用黄色填充
plt.fill_between(x, y1, y2, facecolor=‘y‘, alpha=0.3)
plt.annotate()函数解析详细参数可参考于https://blog.csdn.net/TeFuirnever/article/details/88946088
原文地址:https://www.cnblogs.com/elly01/p/12683514.html
时间: 2024-11-02 12:57:58