raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進行切分,然后強制轉化成數值類型,才能用plot函數
10年的普蘭網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站建設的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整普蘭建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯從事“普蘭網站設計”,“普蘭網站推廣”以來,每個客戶項目都認真落實執行。
我把你的代碼稍微修改了一下,可能不太漂亮,不過能運行了
x=[1,2,3]
a = raw_input('function')
a = a.split(' ')#依空格對字符串a進行切分,如果是用逗號分隔,則改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字符強制轉化成int類型,如果是小數,將int改為float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)
用python怎樣畫出如題所示的正余弦函數圖像? 如此編寫代碼,使其中兩個軸、圖例、刻度,大小,LaTex公式等要素與原圖一致,需要用到的代碼如下,沒有縮進:
#-*-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()
代碼運行show的窗口圖
代碼的截圖
代碼輸出的文件的圖
其中有兩個非常漂亮的指數函數圖就是用python的matplotlib畫出來的。這一期,我們將要介紹如何利用python繪制出如下指數函數。
圖 1 a1圖 1 a1
我們知道當0 ,指數函數 是單調遞減的,當a1 時,指數函數是單調遞增的。所以我們首先要定義出指數函數,將a值做不同初始化
import math
...
def exponential_func(x, a): #定義指數函數
y=math.pow(a, x)
return y
然后,利用numpy構造出自變量,利用上面定義的指數函數來計算出因變量
X=np.linspace(-4, 4, 40) #構造自變量組
Y=[exponential_func(x) for x in X] #求函數值
有了自變量和因變量的一些散點,那么就可以模擬我們平時畫函數操作——描點繪圖,利用下面代碼就可以實現
import math
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist #導入坐標軸加工模塊
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方法創建一個繪圖區對象ax
fig.add_axes(ax) #將繪圖區對象添加到畫布中
def exponential_func(x, a=2): #定義指數函數
y=math.pow(a, x)
return y
X=np.linspace(-4, 4, 40) #構造自變量組
Y=[exponential_func(x) for x in X] #求函數值
ax.plot(X, Y) #繪制指數函數
plt.show()
圖 2 a=2
圖2雖簡單,但麻雀雖小五臟俱全,指數函數該有都有,接下來是如何讓其看起來像我們在作圖紙上面畫的那么美觀,這里重點介紹axisartist 坐標軸加工類,在的時候我們已經用過了,這里就不再多說了。我們只需要在上面代碼后面加上一些代碼來將坐標軸好好打扮一番。
圖 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的matplotlib畫正弦函數圖像,還要用到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();
不寫出y=f(x)這樣的表達式,由隱函數的等式直接繪制圖像,以x2+y2+xy=1的圖像為例,使用sympy間接調用matplotlib工具的代碼和該二次曲線圖像如下(注意python里的乘冪符號是**而不是^,還有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),這幾點和matlab的區別很大)
直接在命令提示行的里面運行代碼的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2+y**2+x*y-1);
文章名稱:python數學函數圖,python畫數學函數圖像
網頁鏈接:http://www.yijiale78.com/article32/hcsisc.html
成都網站建設公司_創新互聯,為您提供面包屑導航、ChatGPT、域名注冊、網站設計、網站營銷、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯