pre
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的鐵西網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
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
不寫(xiě)出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);
第一步,打開(kāi)python語(yǔ)言命令窗口,聲明一個(gè)函數(shù)print_color,調(diào)用range遍歷,打印星號(hào),如下圖所示:
第二步,接著調(diào)用第一步中的函數(shù),然后查看打印結(jié)果,可以發(fā)現(xiàn)生成一個(gè)三角形,如下圖所示:
第三步,再次定義一個(gè)函數(shù)four_tu,利用循環(huán)生成星號(hào),注意查看函數(shù)生成的圖形。
第四步,調(diào)用上述步驟中定義的函數(shù),然后查看打印圖形組合的形狀。
第五步,如果在定義的函數(shù)內(nèi),多次調(diào)用print()方法打印星號(hào),會(huì)是什么樣的結(jié)果呢。
第六步,在后續(xù)步驟中,調(diào)用函數(shù)打印結(jié)果,可以發(fā)現(xiàn)生成一個(gè)不規(guī)則的圖形。
為避免中文顯示出錯(cuò),需導(dǎo)入matplotlib.pylab庫(kù)
1.2.1 確定數(shù)據(jù)
1.2.2 創(chuàng)建畫(huà)布
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)建畫(huà)布。
合理調(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)寫(xiě)為ls;線條寬度,linewidth可簡(jiǎn)寫(xiě)為lw;線條顏色,color可簡(jiǎn)寫(xiě)為c,等等。
一、函數(shù)說(shuō)明
在使用python作圖時(shí),應(yīng)用最廣的就是matplotlib包,但我們平時(shí)使用matplotlib時(shí)主要是畫(huà)一些簡(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()