代碼:
#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
def main():
x = np.linspace(-np.pi,np.pi,256,endpoint=True) #定義橫軸(-pi,pi),256個點,包括最後一個點
s,c = np.sin(x),np.cos(x)
plt.figure(1)
plt.plot(x,s,color="blue",linewidth=1.0,linestyle="-",label="SIN",alpha=0.5) #alpha指透明度
plt.plot(x,c,"r*",label="COS") #r是read,*表示線型
plt.title("SIN & COS")
ax = plt.gca() #返回當前axes (座標圖)對象
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/2,np.pi],
[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$']) #設置橫軸座標值
plt.yticks(np.linspace(-1,1,5,endpoint=True)) #設置縱軸座標值,(-1,1),5個值
for label in ax.get_xticklabels()+ax.get_yticklabels():
label.set_fontsize(16) #設置座標軸數字大小
label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))
plt.legend(loc="upper left") #設置圖例,偏上偏左
plt.grid() #網格線
#plt.axis([-1,1,-0.5,1]) #指定顯示範圍,橫軸(-1,1),縱軸(-0.5,1)
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="green",alpha=0.25) #填充功能,abs(x)<0.5爲判斷性語句
#添加註釋
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=0.2"))
plt.show()
if __name__ == "__main__":
main()
---------------------------------------------------------*****--------------------------------------------------------
annotate:給…做注
xytext=(+10,+30),textcoords="offset points" #註釋相對於點的相對偏移量
arrowprops #設置箭頭格式
connectionstyle="arc3,rad=0.2" #箭頭弧度
結果:spa