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

用一個實線矩形把幾何圖形封閉起來,看起來好像在一個象限里面?,F實中,我們通常采用描點作圖,首先建立一個笛卡爾直角坐標系,然后根據一個自變量,一個因變量的在坐標系里面描一些點,然后用一條光滑曲線把這些點串起來,更像下面這種圖

那么,我們怎么才能利用matplotlib模塊畫出上面的正弦函數呢?先看代碼,再聽分解
代碼:
import math
import numpy as np #導入數值計算模塊
import matplotlib.pyplot as plt #導入繪圖模塊
import mpl_toolkits.axisartist as axisartist #導入坐標軸加工模塊
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坐標軸加箭頭
ax.axis["y"].set_axisline_style("->",size=1.0) #給y坐標軸加箭頭
ax.annotate(s='x' ,xy=(2*math.pi,0) ,xytext=(2*math.pi,0.1)) #標注x軸
ax.annotate(s='y' ,xy=(0,1.0) ,xytext=(-0.5,1.0)) #標注y軸
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]) #設置x軸刻度
ax.set_yticks([-1,1]) #設置y軸刻度
y=[] #用來存放函數值
x=np.linspace(-2*math.pi,2*math.pi,100) #構造橫坐標數據
for xi in x: #生成函數值
? ? y.append(math.sin(xi))#追加
plt.plot(x,y,color="blue") #描點連線
plt.show() #出圖代碼解讀:
工欲善其事必先利其器,畫坐標軸當然要用到坐標軸加工類 axisartist,接下來就是用匠心精神不斷打磨坐標軸。
首先,隱藏原來的實線矩形
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")?

接著,加箭頭,設置箭頭款式,并把坐標軸標注出來
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])?

到這里,一個比較好看的正弦函數圖像才算畫出來,邏輯上來說,要使得坐標軸的標注位置恰當,加標注操作應該在設置坐標軸范圍操作之后。
到此這篇關于利用python繪制笛卡爾直角坐標系的文章就介紹到這了,更多相關python繪制直角坐標系內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pytorch關于卷積操作的初始化方式(kaiming_uniform_詳解)
這篇文章主要介紹了pytorch關于卷積操作的初始化方式(kaiming_uniform_詳解),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
python之cur.fetchall與cur.fetchone提取數據并統(tǒng)計處理操作
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數據并統(tǒng)計處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04

