簡體   English   中英

使用 numpy 繪制 Python 圖形

[英]Python graphing with numpy

好的,所以我試圖用 e 繪制一個函數到某個表達式,但我一直在我把 (##) @ 放在錯誤消息所在的行上收到錯誤

類型錯誤:* 不支持的操作數類型:'numpy.ufunc' 和 'float'

#!C:\Users\msawe\Anaconda3 or C:\Anaconda3\python

import numpy as np
import matplotlib.pyplot as plt

plt.figure (figsize=(10,10), dpi=100)

ax = plt.subplot(111)

plt.title('Projectile Motion: Goround given by h(x) ', size=24)

ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

def h(x):
"This function will return the y-coordinate for a given x-coordinate launch."
##return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos*(20*x**0.2))

X = np.linspace(0, 10, 101, endpoint=True)  

##plt.plot(X, h(X), color="black", linewidth=3, linestyle="-", label="h(x)")

plt.xlim(0,10)
plt.xticks(np.linspace(0,10,11,endpoint=True))

plt.ylim(0,20.0)
plt.yticks(np.linspace(0,20,11,endpoint=True))

plt.legend(loc='upper left', frameon=False)
plt.savefig("Ch5_P4_lowRes.png",dpi=60)
plt.savefig("Ch5_P4_hiRes.png",dpi=200)
plt.savefig("Ch5_P4_plotting.pdf",dpi=72)

plt.show()

如果我能對如何使其工作有一個大致的了解,那就太好了。

假設我正確地解釋了你的方程,那么在你對 h(x) 的定義中np.cos()實現中存在一個錯誤:你寫的是np.cos*(...)而不是np.cos(...) . 修復之后,代碼就可以繪制了——希望它給出了正確的結果!

這將使您對 h(x) 的定義從:

def h(x):
    return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos*(20*x**0.2))

進入:

def h(x):
    return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos(20*x**0.2))

區別很微妙但很重要! 您可以通過連續運行較小的代碼段來輕松檢查此類錯誤,以查看哪個操作np.cos*(...)了錯誤 - 這讓我可以快速了解np.cos*(...)錯別字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM