日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

利用python繪制笛卡爾直角坐標系_python

作者:帥帥de三叔 ? 更新時間: 2022-05-06 編程語言

背景:

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

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

那么,我們怎么才能利用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方法創建一個繪圖區對象ax
fig.add_axes(ax) #將繪圖區對象添加到畫布中

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])?

到這里,一個比較好看的正弦函數圖像才算畫出來,邏輯上來說,要使得坐標軸的標注位置恰當,加標注操作應該在設置坐標軸范圍操作之后。

原文鏈接:https://blog.csdn.net/zengbowengood/article/details/102862072

欄目分類
最近更新