利用python繪制笛卡爾直角坐標(biāo)系
背景:
有些數(shù)學(xué)題目經(jīng)常要用到數(shù)形結(jié)合思想,尤其是一些函數(shù)題目,如果能夠把函數(shù)圖像畫出來進(jìn)行解題的話,思路會更加清晰明了。python繪圖主要用到matplotlib
繪圖模塊,平時我們看到的往往是下面這種圖
用一個實線矩形把幾何圖形封閉起來,看起來好像在一個象限里面?,F(xiàn)實中,我們通常采用描點(diǎn)作圖,首先建立一個笛卡爾直角坐標(biāo)系,然后根據(jù)一個自變量,一個因變量的在坐標(biāo)系里面描一些點(diǎn),然后用一條光滑曲線把這些點(diǎn)串起來,更像下面這種圖
那么,我們怎么才能利用matplotlib
模塊畫出上面的正弦函數(shù)呢?先看代碼,再聽分解
代碼:
import math import numpy as np #導(dǎo)入數(shù)值計算模塊 import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import mpl_toolkits.axisartist as axisartist #導(dǎo)入坐標(biāo)軸加工模塊 fig=plt.figure(figsize=(4,2)) #新建畫布 ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法創(chuàng)建一個繪圖區(qū)對象ax fig.add_axes(ax) #將繪圖區(qū)對象添加到畫布中 ax.axis[:].set_visible(False) #隱藏原來的實線矩形 ax.axis["x"]=ax.new_floating_axis(0,0,axis_direction="bottom") #添加x軸 ax.axis["y"]=ax.new_floating_axis(1,0,axis_direction="bottom") #添加y軸 ax.axis["x"].set_axisline_style("->",size=1.0) #給x坐標(biāo)軸加箭頭 ax.axis["y"].set_axisline_style("->",size=1.0) #給y坐標(biāo)軸加箭頭 ax.annotate(s='x' ,xy=(2*math.pi,0) ,xytext=(2*math.pi,0.1)) #標(biāo)注x軸 ax.annotate(s='y' ,xy=(0,1.0) ,xytext=(-0.5,1.0)) #標(biāo)注y軸 plt.xlim(-6.3,6.3) #設(shè)置橫坐標(biāo)范圍 plt.ylim(-1.1,1.1) #設(shè)置縱坐標(biāo)范圍 ax.set_xticks([-2*math.pi,-math.pi,0,math.pi,2*math.pi]) #設(shè)置x軸刻度 ax.set_yticks([-1,1]) #設(shè)置y軸刻度 y=[] #用來存放函數(shù)值 x=np.linspace(-2*math.pi,2*math.pi,100) #構(gòu)造橫坐標(biāo)數(shù)據(jù) for xi in x: #生成函數(shù)值 ? ? y.append(math.sin(xi))#追加 plt.plot(x,y,color="blue") #描點(diǎn)連線 plt.show() #出圖
代碼解讀:
工欲善其事必先利其器,畫坐標(biāo)軸當(dāng)然要用到坐標(biāo)軸加工類 axisartist
,接下來就是用匠心精神不斷打磨坐標(biāo)軸。
首先,隱藏原來的實線矩形
ax.axis[:].set_visible(False)
其次,添加自定義x軸和y軸
ax.axis["x"]=ax.new_floating_axis(0,0,axis_direction="bottom")? ax.axis["y"]=ax.new_floating_axis(1,0,axis_direction="bottom")?
接著,加箭頭,設(shè)置箭頭款式,并把坐標(biāo)軸標(biāo)注出來
ax.axis["x"].set_axisline_style("->",size=1.0)? ax.axis["y"].set_axisline_style("->",size=1.0)? ax.annotate(s='x' ,xy=(2*math.pi,0) ,xytext=(2*math.pi,0.1))? ax.annotate(s='y' ,xy=(0,1.0) ,xytext=(-0.5,1.0))?
修繕刻度和范圍:
plt.xlim(-6.3,6.3)? plt.ylim(-1.1,1.1)? ax.set_xticks([-2*math.pi,-math.pi,0,math.pi,2*math.pi])? ax.set_yticks([-1,1])?
到這里,一個比較好看的正弦函數(shù)圖像才算畫出來,邏輯上來說,要使得坐標(biāo)軸的標(biāo)注位置恰當(dāng),加標(biāo)注操作應(yīng)該在設(shè)置坐標(biāo)軸范圍操作之后。
到此這篇關(guān)于利用python繪制笛卡爾直角坐標(biāo)系的文章就介紹到這了,更多相關(guān)python繪制直角坐標(biāo)系內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python字符串分割常用方法(str.split()和正則)
在Python中字符串是一種非常常見的數(shù)據(jù)類型,在實際應(yīng)用中我們經(jīng)常需要對字符串進(jìn)行分割,以便對其中的內(nèi)容進(jìn)行處理,這篇文章主要給大家介紹了關(guān)于python字符串分割(str.split()和正則)的相關(guān)資料,需要的朋友可以參考下2023-11-11python通過imaplib模塊讀取gmail里郵件的方法
這篇文章主要介紹了python通過imaplib模塊讀取gmail里郵件的方法,涉及Python操作imaplib模塊操作郵件的相關(guān)技巧,需要的朋友可以參考下2015-05-05