Python图形与numpy

时间:2016-10-07 22:09:06

标签: python numpy

好的,所以我试图用一个表达式绘制一个带有e的函数,但是我在输入的行(##)@中一直出错,其中错误信息是

TypeError:*:' numpy.ufunc'不支持的操作数类型并且'浮动'

#!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()

如果我能够大致了解如何让它发挥作用那将会很棒。

1 个答案:

答案 0 :(得分:0)

假设我正确地解释了你的等式,你在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*(...)错字。