python -m pip install -U pip setuptoolspython -m pip install -U matplotlib使用matplotlib繪圖,會用到Numpy庫,Numpy庫主要用於科學計算。編寫Python程序解決數學問題,sympy庫、matplotlib庫、Numpy庫是必然要用到的,讀者還需要掌握這些庫的用法。在作業系統的命令行窗口輸入並執行下面的命令安裝Numpy庫:#導入numpy庫import numpy as np#導入繪圖工具庫import matplotlib.pyplot as plt# np的linspace函數在指定的間隔範圍內返回均勻間隔的一組數值# 例如:np.linspace(start,end,n=50),在start- end,均勻的返回n個數值# 定義了一個numpy的數組x,從-2π到2π,共200個值x=np.linspace(-2*np.pi,2*np.pi,200,endpoint=True)#對x進行cos計算cos= np.cos(x)#設置cos圖像的線條顏色、線條粗細和圖像標籤標籤plt.plot(x,cos,color='red',linewidth=1.5,label='cos')#對x進行sin計算sin= np.sin(x)#設置sin圖像的線條顏色、線條粗細和圖像標籤標籤plt.plot(x,sin,color='blue',lw=2.5,label='sin')#設置圖例顯示位置plt.legend(loc='lower left')
#設定x軸範圍plt.xlim(-2*np.pi*1.1,2*np.pi*1.1)#設定y軸範圍plt.ylim(cos.min()*1.1,cos.max()*1.1)
#設置X軸刻度值plt.xticks( [-2*np.pi,-3*np.pi/2,-np.pi,-np.pi/2,0,np.pi/2,np.pi,3*np.pi/2,2*np.pi], [r'-$2\pi$',r'-$3\pi/2$',r'-$\pi$',r'-$\pi/2$','0',r'$\pi/2$',r'$\pi$',r'-$3\pi/2$',r'$2\pi$'] )
#設置Y軸刻度值plt.yticks([-1,0,1])#通過plt.gca()獲取坐標軸對象 然後設置屬性ax=plt.gca()#隱藏top和right周ax.spines['top'].set_color("none")ax.spines['right'].set_color("none")#把左下設置為0點ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))
plt.show()使用matplotlib繪製函數圖像,要比sympy麻煩一些,繪圖前要創建繪圖需要的數據,對坐標軸進行設置。程序首先調用Numpy庫的linspace()函數,創建繪製三角函數圖像需要的數據,即三角函數變量x的取值範圍。linspace()函數在指定的間隔範圍內返回均勻間隔的一組數值,x的取值範圍為-2π到+2π範圍,在該範圍內均勻取200個數值。np.cos(x)返回x取不同值時cos的函數值,返回一個存儲cos函數值的列表對象。matplotlib庫pyplot模塊的plot()函數使用給出的數據在坐標軸上繪製曲線,參數x和cos是要繪製的數據點,color是曲線的顏色,lw是曲線的寬度,label是標識曲線的標籤。pyplot模塊的legend()函數設置圖例的位置,當需要在一個坐標軸上繪製多條曲線時,顯示圖例是不錯的繪圖方法。pyplot模塊的xlim()函數設置坐標軸的取值範圍,X軸的取值範圍為-2π、-3π/2、π、-π/2、0,π/2、π、3π/2、2π。Y軸的取值範圍為cos列表元素的最小值和cos列表元素的最大值,即1和-1。pyplot模塊的xticks()函數設置X軸刻度的顯示樣式,若不設置顯示樣式,matplotlib會把X軸刻度顯示為數值,這裡希望顯示為弧度。「-$\pi$」為laText排版系統的語法,在python中使用laText,需要在文本的前後加上$符號,pi是π,matplotlib會自動解析laText內容並排版輸出。最後調用pyplot模塊的gca()函數獲取軸對象,隱藏top和right軸,matplotlib在繪圖時默認會有4個軸,兩個橫軸和兩個豎軸。觀察函數圖像,發現y=sin(x)和y=cos(x)都是以2π為周期的周期函數,它們的定義域都是區間(-∞,+∞),值域都是閉區間[-1,1],自變量x的單位是弧度。y=sin(x)和y=cos(x)函數的最大值是1,最小值是-1。y=sin(x)在(-π/2,π/2)上單調增加,函數的周期是2π,因此y=sin(x)在區間[2kπ-π/2,2kπ+π/2]上單調增加,k為整數。同理,y=sin(x)在區間[2kπ+π/2,2kπ+3π/2]上單調減少。從函數圖像中還發現,y=sin(x)關於原點對稱,是奇函數,y=cos(x)關於Y軸對稱,是偶函數。例2 繪製tan(x)函數圖像
#導入numpy庫import numpy as np#導入繪圖工具庫import matplotlib.pyplot as pltx=np.linspace(-2*np.pi,2*np.pi,200,endpoint=True)#對x進行tan計算tan= np.tan(x)#劃分曲線,分別設置曲線樣式ym1 = np.ma.masked_where(tan > 0, tan)ym2 = np.ma.masked_where(tan < 0, tan) #繪製曲線lines = plt.plot(x,tan,x,ym1,x,ym2,label='tan')#用紅色虛線繪製正切函數豎直漸進線plt.setp(lines[0], color='red',linestyle='dashed',linewidth=1)#用藍色線繪製曲線plt.setp(lines[1], color='blue',linewidth=1)plt.setp(lines[2], color='blue',linewidth=1)#設定x軸範圍plt.xlim(-2*np.pi*1.1,2*np.pi*1.1)#設定y軸範圍plt.ylim(-9,9)#設置X軸刻度值plt.xticks( [-2*np.pi,-3*np.pi/2,-np.pi,-np.pi/2,0,np.pi/2,np.pi,3*np.pi/2,2*np.pi], [r'-$2\pi$',r'-$3\pi/2$',r'-$\pi$',r'-$\pi/2$','0',r'$\pi/2$',r'$\pi$',r'$3\pi/2$',r'$2\pi$'] )
#設置Y軸刻度值plt.yticks(list(range(-9,10,1)))#通過plt.gca()獲取坐標軸對象 然後設置屬性ax=plt.gca()#隱藏top和right周ax.spines['top'].set_color("none")ax.spines['right'].set_color("none")#把左下設置為0點ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))plt.show()Numpy庫ma模塊的masked_where函數從給定的數據集中選取符合條件的數據並進行屏蔽,masked_where(tan > 0, tan)會從tan數據集選取值大於0的數據,對這些數據進行屏蔽,並返回沒有被屏蔽的數據集。plot()函數可以繪製多條曲線,依次傳入繪製曲線的數據集即可。pyplot模塊的setp()函數可以設置每條繪製曲線的樣式。觀察函數圖像,發現tan(x)函數以π為周期,向Y軸兩端無限延伸,沒有最大值,也沒有最小值,值域為全體實數。進一步觀察發現,函數曲線在±π/2或kπ+π/2(k為整數)處沒有值,曲線只是無限接近該值。因為根據定義,tan(α)=y/x,p=π/2時,x=0無意義,正切值不存在。tan(x)函數的定義域為{x|x≠(πbai/2)+kπ,k∈Z}。研究三角函數時,掌握三角函數之間的關係是非常重要的,可以通過三角函數之間的關係由一個三角函數推導出其它三角函數。根據sin^2α+cos^2α=1關係,sin(a)函數可推導出cos(a)函數,cos(a)函數可推導出sin(a)函數。根據tan(a) = sin(a)/cos(a)關係,sin(a)函數和cos(a)函數可推導出tan(a)函數。
Python從入門到精通
課程從初學者角度出發,以通俗易懂的語言,豐富的實踐案例,讓初學者能夠快速入門Python編程,全面掌握Python編程技能,具備開發網絡爬蟲、數據分析和機器學習的編程能力。在課程內容安排上,提供了圖文課程、視頻課程和課程考核,保障了學習效果和質量。課程適合16周歲以上人群學習。