Python绘图将不运行:“x和y必须具有相同的第一维度”

2024-10-05 14:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我绝对肯定我在函数定义上犯了一些简单的错误,但是我现在已经完全筋疲力尽了,无法理解它。如果有人能帮忙,我会永远爱他们。你知道吗

import matplotlib.pyplot as plt
import scipy as sp

lamb = sp.array([1100, 1650, 2200, 2750, 3300, 3850, 4400, 4950, 5500, 6050, 6600])
fno = sp.array([3.779, 2.443, 1.788, 1.361, 1.049, 0.831, 0.689, 0.590, 0.524, 0.486, 0.463])
fla = sp.array([0.743, 0.622, 0.555, 0.507, 0.468, 0.434, 0.401, 0.371, 0.348, 0.336, 0.320])
ebv = .1433

fig = plt.figure()
ax = fig.add_subplot(111)

def alam(fno, fla):
    return (2.5*sp.log(fno/fla))

def rlam(lamb):
    return (alam/ebv)

plt.plot(lamb, rlam,'k-')

plt.show()

我可能是个白痴,所以尽管叫我白痴吧。谢谢!你知道吗


Tags: 函数importreturndefasfigpltarray
1条回答
网友
1楼 · 发布于 2024-10-05 14:24:56

你可以清楚地看到有一个问题。你必须给两个数组plt.绘图(x,y)。在您的例子中,您给出了一个数组和一个函数名rlam。很明显,这是一个错误。你知道吗

尝试了解更多关于python函数用法的信息。我添加了一个小的代码片段,用一个输入参数显示了plot用法和python函数用法。你知道吗

import matplotlib.pyplot as plt
import scipy as sp

lamb = sp.array([1100, 1650, 2200, 2750, 3300, 3850, 4400, 4950, 5500, 6050, 6600])
ebv = .1433

fig = plt.figure()
ax = fig.add_subplot(111)

def test_func(lamb):
    return lamb/ebv

plt.plot(lamb, test_func(lamb),'k-')
plt.show()

相关问题 更多 >