python+matplotlib+繪制不同圖標類型


#==================================================================
#首先需要導入兩個文件
import matplotlib.pyplot as plt
import numpy as np
#==================================================================

 1 #==================================================================
 2 #首先需要導入兩個文件
 3 import  matplotlib.pyplot as plt
 4 import  numpy as np
 5 #==================================================================
 6 #繪制線性圖
 7 x = np.arange(-2*np.pi,2*np.pi,0.01)#定義橫軸范圍(-2pi 2pi)
 8 y = np.sin(3*x)/x#函數
 9 y2 = np.sin(2*x)/x
10 y3 = np.sin(x)/x
11 plt.plot(x,y)#繪制,matplotlib默認展示不同的顏色
12 plt.plot(x,y2,'--')
13 plt.plot(x,y3)
14 plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#顯示橫坐標刻度值,不加第二個參數,將顯示的是數值而不是字母
15 plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])
16 plt.legend(['y1','y2','y3'])
17 plt.title('NEO-Karl')
18 plt.show()

運行結果:

 1 #將坐標軸移到中間,即笛卡爾坐標軸。
 2 # 路徑:將圖形上,右邊隱藏,將下,左邊移動到中間,需要用到gac函數獲取Axes對象
 3 # 接着通過這個對象指定每條邊的位置,使用set_color設置成none。實現代碼如下:
 4 x = np.arange(-2*np.pi,2*np.pi,0.01)#定義橫軸范圍
 5 y = np.sin(3*x)/x#函數
 6 y2 = np.sin(2*x)/x
 7 y3 = np.sin(x)/x
 8 plt.plot(x,y)#繪制,matplotlib默認展示不同的顏色
 9 plt.plot(x,y2,'--')
10 plt.plot(x,y3)
11 plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#顯示橫坐標刻度值,不加第二個參數,將顯示的是數值而不是字母
12 plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])
13 plt.legend(['y1','y2','y3'])
14 plt.title('NEO-Karl')
15 ax = plt.gca()#使用gca函數獲取axes對象
16 ax.spines['right'].set_color('none')#右側邊隱藏
17 ax.spines['top'].set_color('none')
18 ax.xaxis.set_ticks_position('bottom')#將底邊設為橫坐標
19 ax.spines['bottom'].set_position(('data',0))#將坐標置於坐標0處
20 ax.yaxis.set_ticks_position('left')#左邊設置為縱坐標
21 ax.spines['left'].set_position(('data',0))
22 plt.show()

運行結果:

 1 x = np.arange(-2*np.pi,2*np.pi,0.01)#定義橫軸范圍
 2 y = np.sin(3*x)/x#函數
 3 y2 = np.sin(2*x)/x
 4 y3 = np.sin(x)/x
 5 plt.plot(x,y)#繪制,matplotlib默認展示不同的顏色
 6 plt.plot(x,y2,'--')
 7 plt.plot(x,y3)
 8 plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#顯示橫坐標刻度值,不加第二個參數,將顯示的是數值而不是字母
 9 plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])
10 plt.legend(['y1','y2','y3'])
11 plt.title('NEO-Karl')
12 #添加注釋,使用annotate函數,第一個參數為:latex表達式,即要現實的字符,xy是注釋在圖表的數據點位置,xytext表示注釋與數據點距離,textcoords='offset points'似乎是必須選?使用arrowprops控制箭頭
13 plt.annotate(r'$\lim_{x\to 0}\frac{\sin(x)}{x}=1$',xy=[0,1],xytext=[30,30],fontsize=16,textcoords='offset points',arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
14 ax = plt.gca()#使用gca函數獲取axes對象
15 ax.spines['right'].set_color('none')#右側邊隱藏
16 ax.spines['top'].set_color('none')
17 ax.xaxis.set_ticks_position('bottom')#將底邊設為橫坐標
18 ax.spines['bottom'].set_position(('data',0))#將坐標置於坐標0處
19 ax.yaxis.set_ticks_position('left')#左邊設置為縱坐標
20 ax.spines['left'].set_position(('data',0))
21 plt.show()

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM