一、函數(shù)說(shuō)明
目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、大城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
在使用python作圖時(shí),應(yīng)用最廣的就是matplotlib包,但我們平時(shí)使用matplotlib時(shí)主要是畫一些簡(jiǎn)單的圖表,很少有涉及分段函數(shù)。本次針對(duì)數(shù)值實(shí)驗(yàn)中兩個(gè)較為復(fù)雜的函數(shù),使用其構(gòu)建分段函數(shù)圖像。
二、圖像代碼
2.11、函數(shù)公式:
y=4sin(4πt)-sgn(t-0.3)-sgn(0.72-t)
2.12、代碼如下:
import numpy as np
import matplotlib.pyplot as plt
def sgn(x):
if x0:
return 1
elif x0:
return -1
else:
return 0
t=np.arange(0,1,0.01)
y=[]
for i in t:
y_1=4*np.sin(4*np.pi*i)-sgn(i-0.3)-sgn(0.72-i)
y.append(y_1)
plt.plot(t,y)
plt.xlabel("t")
plt.ylabel("y")
plt.title("Heavsine")
plt.show()
2.13、運(yùn)行結(jié)果如下:
81036331d721706ae12808beb99b9574.png
2.21、函數(shù)公式:
479029.html
2.22、代碼如下:
import numpy as np
import matplotlib.pyplot as plt
def g(x):
if x0:
return x
else:
return 0
t=np.arange(0,1,0.01)
y=[]
for i in t:
y_1=g(i*(1-i))*np.sin((2*np.pi*1.05)/(i+0.05))
y.append(y_1)
plt.plot(t,y)
plt.xlabel("t")
plt.ylabel("y")
plt.title("TimeSine")
plt.show()
輸入以下代碼導(dǎo)入我們用到的函數(shù)庫(kù)。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,5,0.1);
y=np.sin(x);
plt.plot(x,y)
采用剛才代碼后有可能無(wú)法顯示下圖,然后在輸入以下代碼就可以了:
plt.show()
不寫出y=f(x)這樣的表達(dá)式,由隱函數(shù)的等式直接繪制圖像,以x2+y2+xy=1的圖像為例,使用sympy間接調(diào)用matplotlib工具的代碼和該二次曲線圖像如下(注意python里的乘冪符號(hào)是**而不是^,還有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),這幾點(diǎn)和matlab的區(qū)別很大)
直接在命令提示行的里面運(yùn)行代碼的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2+y**2+x*y-1);
1,xlable,ylable設(shè)置x,y軸的標(biāo)題文字。
2,title設(shè)置標(biāo)題。
3,xlim,ylim設(shè)置x,y軸顯示范圍。
plt.show()顯示繪圖窗口,通常情況下,show()會(huì)阻礙程序運(yùn)行,帶-wthread等參數(shù)的環(huán)境下,窗口不會(huì)關(guān)閉。
plt.saveFig()保存圖像。
面向?qū)ο罄L圖
1,當(dāng)前圖表和子圖可以用gcf(),gca()獲得。
subplot()繪制包含多個(gè)圖表的子圖。
configure subplots,可調(diào)節(jié)子圖與圖表邊框距離。
可以通過(guò)修改配置文件更改對(duì)象屬性。
圖標(biāo)顯示中文
1,在程序中直接指定字體。
2, 在程序開(kāi)始修改配置字典reParams.
3,修改配置文件。
Artist對(duì)象
1,圖標(biāo)的繪制領(lǐng)域。
2,如何在FigureCanvas對(duì)象上繪圖。
3,如何使用Renderer在FigureCanvas對(duì)象上繪圖。
FigureCanvas和Render處理底層圖像操作,Artist處理高層結(jié)構(gòu)。
分為簡(jiǎn)單對(duì)象和容器對(duì)象,簡(jiǎn)單的Aritist是標(biāo)準(zhǔn)的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡(jiǎn)單的的 Aritist對(duì)象,使他們構(gòu)成一個(gè)整體,例如Axis,Axes,Figure等。
直接創(chuàng)建Artist對(duì)象進(jìn)項(xiàng)繪圖操作步奏:
1,創(chuàng)建Figure對(duì)象(通過(guò)figure()函數(shù),會(huì)進(jìn)行許多初始化操作,不建議直接創(chuàng)建。)
2,為Figure對(duì)象創(chuàng)建一個(gè)或多個(gè)Axes對(duì)象。
3,調(diào)用Axes對(duì)象的方法創(chuàng)建各類簡(jiǎn)單的Artist對(duì)象。
Figure容器
如何找到指定的Artist對(duì)象。
1,可調(diào)用add_subplot()和add_axes()方法向圖表添加子圖。
2,可使用for循環(huán)添加?xùn)鸥瘛?/p>
3,可通過(guò)transform修改坐標(biāo)原點(diǎn)。
Axes容器
1,patch修改背景。
2,包含坐標(biāo)軸,坐標(biāo)網(wǎng)格,刻度標(biāo)簽,坐標(biāo)軸標(biāo)題等內(nèi)容。
3,get_ticklabels(),,get-ticklines獲得刻度標(biāo)簽和刻度線。
1,可對(duì)曲線進(jìn)行插值。
2,fill_between()繪制交點(diǎn)。
3,坐標(biāo)變換。
4,繪制陰影。
5,添加注釋。
1,繪制直方圖的函數(shù)是
2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數(shù)據(jù)中的五個(gè)統(tǒng)計(jì)量:最小值、第一四分位
數(shù)、中位數(shù)、第三四分位數(shù)與最大值來(lái)描述數(shù)據(jù)的一種方法,它可以粗略地看出數(shù)據(jù)是否具有對(duì)稱性以及分
布的分散程度等信息,特別可以用于對(duì)幾個(gè)樣本的比較。
3,餅圖就是把一個(gè)圓盤按所需表達(dá)變量的觀察數(shù)劃分為若干份,每一份的角度(即面積)等價(jià)于每個(gè)觀察
值的大小。
4,散點(diǎn)圖
5,QQ圖
低層繪圖函數(shù)
類似于barplot(),dotchart()和plot()這樣的函數(shù)采用低層的繪圖函數(shù)來(lái)畫線和點(diǎn),來(lái)表達(dá)它們?cè)陧?yè)面上放置的位置以及其他各種特征。
在這一節(jié)中,我們會(huì)描述一些低層的繪圖函數(shù),用戶也可以調(diào)用這些函數(shù)用于繪圖。首先我們先講一下R怎么描述一個(gè)頁(yè)面;然后我們講怎么在頁(yè)面上添加點(diǎn),線和文字;最后講一下怎么修改一些基本的圖形。
繪圖區(qū)域與邊界
R在繪圖時(shí),將顯示區(qū)域劃分為幾個(gè)部分。繪制區(qū)域顯示了根據(jù)數(shù)據(jù)描繪出來(lái)的圖像,在此區(qū)域內(nèi)R根據(jù)數(shù)據(jù)選擇一個(gè)坐標(biāo)系,通過(guò)顯示出來(lái)的坐標(biāo)軸可以看到R使用的坐標(biāo)系。在繪制區(qū)域之外是邊沿區(qū),從底部開(kāi)始按順時(shí)針?lè)较蚍謩e用數(shù)字1到4表示。文字和標(biāo)簽通常顯示在邊沿區(qū)域內(nèi),按照從內(nèi)到外的行數(shù)先后顯示。
添加對(duì)象
在繪制的圖像上還可以繼續(xù)添加若干對(duì)象,下面是幾個(gè)有用的函數(shù),以及對(duì)其功能的說(shuō)明。
?points(x, y, ...),添加點(diǎn)
?lines(x, y, ...),添加線段
?text(x, y, labels, ...),添加文字
?abline(a, b, ...),添加直線y=a+bx
?abline(h=y, ...),添加水平線
?abline(v=x, ...),添加垂直線
?polygon(x, y, ...),添加一個(gè)閉合的多邊形
?segments(x0, y0, x1, y1, ...),畫線段
?arrows(x0, y0, x1, y1, ...),畫箭頭
?symbols(x, y, ...),添加各種符號(hào)
?legend(x, y, legend, ...),添加圖列說(shuō)明
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ù) python如何畫函數(shù)的對(duì)稱圖像
URL網(wǎng)址:http://jinyejixie.com/article3/doddcos.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、用戶體驗(yàn)、面包屑導(dǎo)航、關(guān)鍵詞優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(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)