matplotlib基本线图绘制

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

猜你喜欢

转载自www.cnblogs.com/elly01/p/12683514.html