不寫出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ū)別很大)
創(chuàng)新互聯(lián)建站主營赤峰網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),赤峰h5微信小程序開發(fā)搭建,赤峰網(wǎng)站營銷推廣歡迎赤峰等地區(qū)企業(yè)咨詢
直接在命令提示行的里面運(yùn)行代碼的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2+y**2+x*y-1);
輸入以下代碼導(dǎo)入我們用到的函數(shù)庫。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,5,0.1);
y=np.sin(x);
plt.plot(x,y)
采用剛才代碼后有可能無法顯示下圖,然后在輸入以下代碼就可以了:
plt.show()
def func_sin():
# 準(zhǔn)備 X 軸的數(shù)據(jù), 0~10分成90段
x = np.linspace(0, 10, 90)
# 準(zhǔn)備 y 軸的數(shù)據(jù)
y = []
for i in x:
print(i)
y.append(math.sin(i))?
# 繪制線圖
plt.plot(x, y,c='r' )
# 添加標(biāo)題
plt.title("y = sin(x)")
# 添加 x 軸的信息
plt.xlabel("x")
# 添加 y 軸的信息
plt.ylabel("y")
# 顯示線圖
plt.show()
使用python的matplotlib畫正弦函數(shù)圖像,還要用到numpy庫,代碼如下9行所示:
import numpy as np;
from matplotlib import pyplot as plt;
fig = plt.figure();
ax2= fig.add_subplot(111);
x=np.arange(0,100)/10;
y=np.sin(x);
ax2.plot(x,y);
plt.savefig('sine.png');
plt.show();
raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進(jìn)行切分,然后強(qiáng)制轉(zhuǎn)化成數(shù)值類型,才能用plot函數(shù)
我把你的代碼稍微修改了一下,可能不太漂亮,不過能運(yùn)行了
x=[1,2,3]
a = raw_input('function')
a = a.split(' ')#依空格對字符串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)