#==================================================================
#首先需要導入兩個文件
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()
運行結果: