使用matplotlib绘制一个简单的二维图,用到的功能包括:
设置标题
控制线形,颜色
调整四条边框构成坐标轴
标定数轴
设置图例
部分填充
点标识
加网格
———————————————代码——————————
import numpy as np
import matplotlib.pyplot as plt #pyplot是matplotlib绘制二位图像核心函数x=np.linspace(-np.pi,np.pi,256,endpoint=True) #定义x范围以及是否包含最后一个点
c,s=np.cos(x),np.sin(x) #计算sin,cos作为y1,y2
plt.figure(1) #绘制图1
plt.plot(x,c,color="blue",linewidth=1.0,linestyle="-",label="COS",alpha=0.5) #alpha为透明度 #绘图
plt.plot(x,s,"r*",label="SIN") #r*表示线形为*
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)) #把位置设到数据域的零位置
ax.spines["bottom"].set_position(("data",0))
ax.xaxis.set_ticks_position("bottom") #设置位置
ax.yaxis.set_ticks_position("left")
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],
[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi/2$']) #需要指定两个数组,第一个是标识的位置,第二个是标识的内容
plt.xticks(np.linspace(-1,1,5,endpoint=True)) #y只需要给出数字就行了
for label in ax.get_xticklabels()+ax.get_yticklabels(): #设置大小
label.set_fontsize(6)
label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))
plt.legend(loc="upper left")
#plt.axis([-1,1,-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,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),textcoords='offset points',arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))
#在1,1点加上一个注释,注释的位置需要相对偏移,最后再加上一个箭头,需要给定弧度和角度
plt.grid() #加上网格
plt.show()