利用python繪制笛卡爾直角坐標(biāo)系
背景:
有些數(shù)學(xué)題目經(jīng)常要用到數(shù)形結(jié)合思想,尤其是一些函數(shù)題目,如果能夠把函數(shù)圖像畫出來(lái)進(jìn)行解題的話,思路會(huì)更加清晰明了。python繪圖主要用到matplotlib
繪圖模塊,平時(shí)我們看到的往往是下面這種圖
用一個(gè)實(shí)線矩形把幾何圖形封閉起來(lái),看起來(lái)好像在一個(gè)象限里面。現(xiàn)實(shí)中,我們通常采用描點(diǎn)作圖,首先建立一個(gè)笛卡爾直角坐標(biāo)系,然后根據(jù)一個(gè)自變量,一個(gè)因變量的在坐標(biāo)系里面描一些點(diǎn),然后用一條光滑曲線把這些點(diǎn)串起來(lái),更像下面這種圖
那么,我們?cè)趺床拍芾?code>matplotlib模塊畫出上面的正弦函數(shù)呢?先看代碼,再聽分解
代碼:
import math import numpy as np #導(dǎo)入數(shù)值計(jì)算模塊 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)建一個(gè)繪圖區(qū)對(duì)象ax fig.add_axes(ax) #將繪圖區(qū)對(duì)象添加到畫布中 ax.axis[:].set_visible(False) #隱藏原來(lái)的實(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=[] #用來(lái)存放函數(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
,接下來(lái)就是用匠心精神不斷打磨坐標(biāo)軸。
首先,隱藏原來(lái)的實(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)注出來(lái)
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])?
到這里,一個(gè)比較好看的正弦函數(shù)圖像才算畫出來(lái),邏輯上來(lái)說(shuō),要使得坐標(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python項(xiàng)目管理工具Poetry使用示例詳解
這篇文章主要為大家介紹了Python項(xiàng)目管理工具Poetry使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Python利用xlwings實(shí)現(xiàn)考勤表制作
這篇文章主要為大家詳細(xì)介紹了Python如何利用xlwings庫(kù)操作excel實(shí)現(xiàn)考勤表的制作,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試一下2023-04-04python實(shí)現(xiàn)按長(zhǎng)寬比縮放圖片
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)按長(zhǎng)寬比縮放圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06python?random庫(kù)的簡(jiǎn)單使用demo
這篇文章主要為大家介紹了python?random庫(kù)的簡(jiǎn)單使用demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python字符串分割常用方法(str.split()和正則)
在Python中字符串是一種非常常見的數(shù)據(jù)類型,在實(shí)際應(yīng)用中我們經(jīng)常需要對(duì)字符串進(jìn)行分割,以便對(duì)其中的內(nèi)容進(jìn)行處理,這篇文章主要給大家介紹了關(guān)于python字符串分割(str.split()和正則)的相關(guān)資料,需要的朋友可以參考下2023-11-11python通過(guò)imaplib模塊讀取gmail里郵件的方法
這篇文章主要介紹了python通過(guò)imaplib模塊讀取gmail里郵件的方法,涉及Python操作imaplib模塊操作郵件的相關(guān)技巧,需要的朋友可以參考下2015-05-05詳解Python中用于計(jì)算指數(shù)的exp()方法
這篇文章主要介紹了詳解Python中用于計(jì)算指數(shù)的exp()方法,是Python入門中必會(huì)的基本方法,需要的朋友可以參考下2015-05-05