我一直在玩 pyplot,有些事情很奇怪。
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return x**2
def g(x):
return 5
def h(x):
return 5+x-x
x = np.linspace(-3.0, 3.0, num=50)
plt.plot(x, f(x)) #works
plt.plot(x, g(x)) #crashes
plt.plot(x, h(x)) #works
plt.grid()
plt.show()
f(x) 按预期工作。 g(x) 崩溃并绘制一条线,我必须使用 h(x) 中的解决方法。这是为什么?所有这些函数都只返回数字,但其中一个有效,另一个无效。
最佳答案
x
是一个大小为 50 的 numpy
数组。f(x)
和 h(x)
都是返回相同大小的数组。这样您就可以将其中一个与另一个进行比较。
g(x)
返回标量 5,其大小为 1。并且您无法针对大小为 1 的对象绘制大小为 50 的数组。
你可以像这样修改它:
def g(x):
return np.ones_like(x)*5
这将返回一个与输入数组具有相同大小(和形状)的数组,因此您可以根据输出绘制输入。
关于python - 仅当添加和减去相同的值时,使用 pyplot 绘制常量函数才有效。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61739340/