python函數(shù)簡(jiǎn)圖,python 函數(shù)作圖

python畫正余弦函數(shù)圖像?

用python怎樣畫出如題所示的正余弦函數(shù)圖像? 如此編寫代碼,使其中兩個(gè)軸、圖例、刻度,大小,LaTex公式等要素與原圖一致,需要用到的代碼如下,沒(méi)有縮進(jìn):

創(chuàng)新互聯(lián)專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

#-*-codeing:utf-8;-*-

from matplotlib import pyplot as plt

import numpy as np

a=np.linspace(0,360,980)

b=np.sin(a/180*np.pi)

c=np.cos(a/180*np.pi)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.set_xlim([0, 360])

ax.plot(a,b,label=r"$y=\sin(\theta)$")

ax.plot(a,c,label=r"$y=\cos(\theta)$")

ax.grid(True)

ax.set_ylabel(r"$y$")

ax.set_xlabel(r"$\theta$")

plt.xticks(np.arange(0,360+1,45))

plt.title("Sine Cosine Waves")

plt.legend()

plt.savefig("SinCosWaveDegFont.jpg")

plt.show()

代碼運(yùn)行show的窗口圖

代碼的截圖

代碼輸出的文件的圖

python怎么表示指數(shù)?

其中有兩個(gè)非常漂亮的指數(shù)函數(shù)圖就是用python的matplotlib畫出來(lái)的。這一期,我們將要介紹如何利用python繪制出如下指數(shù)函數(shù)。

圖 1 a1圖 1 a1

我們知道當(dāng)0 ,指數(shù)函數(shù) 是單調(diào)遞減的,當(dāng)a1 時(shí),指數(shù)函數(shù)是單調(diào)遞增的。所以我們首先要定義出指數(shù)函數(shù),將a值做不同初始化

import math

...

def exponential_func(x, a): #定義指數(shù)函數(shù)

y=math.pow(a, x)

return y

然后,利用numpy構(gòu)造出自變量,利用上面定義的指數(shù)函數(shù)來(lái)計(jì)算出因變量

X=np.linspace(-4, 4, 40) #構(gòu)造自變量組

Y=[exponential_func(x) for x in X] #求函數(shù)值

有了自變量和因變量的一些散點(diǎn),那么就可以模擬我們平時(shí)畫函數(shù)操作——描點(diǎn)繪圖,利用下面代碼就可以實(shí)現(xiàn)

import math

import numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.axisartist as axisartist #導(dǎo)入坐標(biāo)軸加工模塊

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

fig=plt.figure(figsize=(6,4)) #新建畫布

ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法創(chuàng)建一個(gè)繪圖區(qū)對(duì)象ax

fig.add_axes(ax) #將繪圖區(qū)對(duì)象添加到畫布中

def exponential_func(x, a=2): #定義指數(shù)函數(shù)

y=math.pow(a, x)

return y

X=np.linspace(-4, 4, 40) #構(gòu)造自變量組

Y=[exponential_func(x) for x in X] #求函數(shù)值

ax.plot(X, Y) #繪制指數(shù)函數(shù)

plt.show()

圖 2 a=2

圖2雖簡(jiǎn)單,但麻雀雖小五臟俱全,指數(shù)函數(shù)該有都有,接下來(lái)是如何讓其看起來(lái)像我們?cè)谧鲌D紙上面畫的那么美觀,這里重點(diǎn)介紹axisartist 坐標(biāo)軸加工類,在的時(shí)候我們已經(jīng)用過(guò)了,這里就不再多說(shuō)了。我們只需要在上面代碼后面加上一些代碼來(lái)將坐標(biāo)軸好好打扮一番。

圖 3 a1 完整代碼# -*- coding: utf-8 -*-圖 3 a1 完整代碼# -*- coding: utf-8 -*-"""Created on Sun Feb 16 10:19:23 2020project name:@author: 帥帥de三叔"""import mathimport numpy as npimport matplotlib.pyplot as pltimport mp

python繪制函數(shù)圖像

raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進(jìn)行切分,然后強(qiáng)制轉(zhuǎn)化成數(shù)值類型,才能用plot函數(shù)

我把你的代碼稍微修改了一下,可能不太漂亮,不過(guò)能運(yùn)行了

x=[1,2,3]

a = raw_input('function')

a = a.split(' ')#依空格對(duì)字符串a(chǎn)進(jìn)行切分,如果是用逗號(hào)分隔,則改成a.split(',')

b = []

for i in range(len(a)):#把切分好的字符強(qiáng)制轉(zhuǎn)化成int類型,如果是小數(shù),將int改為float

b.append(int(a[i]))

plt.plot(x, b, label='x', color="green", linewidth=1)

Python matplotlib之函數(shù)圖像繪制、線條rc參數(shù)設(shè)置

為避免中文顯示出錯(cuò),需導(dǎo)入matplotlib.pylab庫(kù)

1.2.1 確定數(shù)據(jù)

1.2.2 創(chuàng)建畫布

1.2.3 添加標(biāo)題

1.2.4 添加x,y軸名稱

1.2.5 添加x,y軸范圍

1.2.6 添加x,y軸刻度

1.2.7 繪制曲線、圖例, 并保存圖片

保存圖片時(shí),dpi為清晰度,數(shù)值越高越清晰。請(qǐng)注意,函數(shù)結(jié)尾處,必須加plt.show(),不然圖像不顯示。

繪制流程與繪制不含子圖的圖像一致,只需注意一點(diǎn):創(chuàng)建畫布。

合理調(diào)整figsize、dpi,可避免出現(xiàn)第一幅圖橫軸名稱與第二幅圖標(biāo)題相互遮蓋的現(xiàn)象.

2.2.1 rc參數(shù)類型

2.2.2 方法1:使用rcParams設(shè)置

2.2.3 方法2:plot內(nèi)設(shè)置

2.2.4 方法3:plot內(nèi)簡(jiǎn)化設(shè)置

方法2中,線條形狀,linestyle可簡(jiǎn)寫為ls;線條寬度,linewidth可簡(jiǎn)寫為lw;線條顏色,color可簡(jiǎn)寫為c,等等。

python函數(shù)圖的繪制

pre

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.patches import Polygon

def func(x):

return -(x-2)*(x-8)+40

x=np.linspace(0,10)

y=func(x)

fig,ax = plt.subplots()

plt.plot(x,y,'r',linewidth=2)

plt.ylim(ymin=20)

a=2

b=9

ax.set_xticks([a,b])

ax.set_xticklabels(['$a$','$b$'])

ax.set_yticks([])

plt.figtext(0.9,0.05,'$x$')

plt.figtext(0.1,0.9,'$y$')

ix=np.linspace(a,b)

iy=func(ix)

ixy=zip(ix,iy)

verts=[(a,0)]+list(ixy)+[(b,0)]

poly = Polygon(verts,facecolor='0.9',edgecolor='0.5')

ax.add_patch(poly)

x_math=(a+b)*0.5

y_math=35

plt.text(x_math,y_math,r"$\int_a^b(-(x-2)*(x-8)+40)dx$",horizontalalignment='center',size=12)

plt.show()

/pre

名稱欄目:python函數(shù)簡(jiǎn)圖,python 函數(shù)作圖
網(wǎng)站URL:http://muchs.cn/article32/hcjcpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)虛擬主機(jī)、Google、網(wǎng)站收錄品牌網(wǎng)站制作、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)