利用python繪制笛卡爾直角坐標(biāo)系
背景:
有些數(shù)學(xué)題目經(jīng)常要用到數(shù)形結(jié)合思想,尤其是一些函數(shù)題目,如果能夠把函數(shù)圖像畫出來進(jìn)行解題的話,思路會更加清晰明了。python繪圖主要用到matplotlib繪圖模塊,平時我們看到的往往是下面這種圖

用一個實(shí)線矩形把幾何圖形封閉起來,看起來好像在一個象限里面?,F(xiàn)實(shí)中,我們通常采用描點(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) #隱藏原來的實(shí)線矩形
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)軸。
首先,隱藏原來的實(shí)線矩形
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生成隨機(jī)驗(yàn)證碼(中文驗(yàn)證碼)示例
這篇文章主要介紹了python生成中文隨機(jī)驗(yàn)證碼示例,需要的朋友可以參考下2014-04-04
python使用內(nèi)存zipfile對象在內(nèi)存中打包文件示例
這篇文章主要介紹了python使用內(nèi)存zipfile對象在內(nèi)存中打包文件示例,需要的朋友可以參考下2014-04-04
pytorch關(guān)于卷積操作的初始化方式(kaiming_uniform_詳解)
這篇文章主要介紹了pytorch關(guān)于卷積操作的初始化方式(kaiming_uniform_詳解),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04

