Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 普朗克函数图问题_Python_Python 3.x_Astronomy - Fatal编程技术网

Python 普朗克函数图问题

Python 普朗克函数图问题,python,python-3.x,astronomy,Python,Python 3.x,Astronomy,我们正在绘制温度为5000K-10000K的普朗克函数的整体图 我尝试了各种方法来解决图形问题,但似乎我的格式设置或类似设置导致了混合数组值,我找不到解决方案 import math import matplotlib.pyplot as plt import numpy as np #all constants h=6.62e-34 c=2.998e8 k=1.3806503E-23 pi=np.pi #equation def planck(lamb1,T): top=(2*

我们正在绘制温度为5000K-10000K的普朗克函数的整体图

我尝试了各种方法来解决图形问题,但似乎我的格式设置或类似设置导致了混合数组值,我找不到解决方案

import math
import matplotlib.pyplot as plt
import numpy as np

#all constants
h=6.62e-34
c=2.998e8
k=1.3806503E-23

pi=np.pi


#equation
def planck(lamb1,T):
    top=(2*h*c**2)/lamb1**5
    bottom_hard=h*c/(lamb1*k*T)
    Flux=top/((math.e**(bottom_hard)-1))
    return Flux
# function inputs
lamb1=np.arange(0.1,10.1,.01)
Flux1=(lamb1*1e-6,5000)
Flux2=(lamb1*1e-6,6000)
Flux3=(lamb1*1e-6,7000)
Flux4=(lamb1*1e-6,8000)
Flux5=(lamb1*1e-6,9000)
Flux6=(lamb1*1e-6,10000)

#Actual plot

#data
wl = np.arange(10e-5, 10e-7,0.01*1e-6)

plt.plot(wl,Flux1)
plt.plot(wl,Flux2)
plt.plot(wl,Flux3)
plt.plot(wl,Flux4)
plt.plot(wl,Flux5)
plt.plot(wl,Flux6)
plt.xlabel("Wavelength(m)")
plt.ylabel("Flux(Vm)")
plt.title("Plancks Function Curve for Temp Ranges 5000K-10,000K")
plt.show()
我得到的错误是

ValueError: x and y must have same first dimension, but have shapes (1000,) and (2,)

我只需要得到实际的图形数据就可以了。完成后,我可以自己做其余的编辑(希望!!)

假设您有一个类型并打算定义
Flux1=planck(…)
,问题在于您定义
wl
的方式

wl = np.arange(10e-5, 10e-7,0.01*1e-6)
这意味着您创建的数组的值大于
10e-5
,小于
10e-7
。没有!如果相反,您定义

wl = np.arange(0.1*10e-6, 10.1*10e-6,0.01*1e-6)
然后,您可以绘制

plt.plot(wl, Fluz1)

通常,共享更多的堆栈跟踪会很有帮助,这样人们就可以看到错误发生在哪一行。然而,我猜它在第一个
plt
plt.plot(wl,Flux1)
上,因为
wl
是一个1000个值的范围,而
Flux1
(顺便说一句,你不应该在这里使用大写)是一对两个值,显然不是相同的维度。你到底期望
Flux1=(lamb1*1e-65000)
做什么?因为在我看来这就是你的问题所在。您正在定义一个元组,其中似乎要定义一系列值。这不只是一个打字错误吗?你是不是想写
Flux1=planck(lamb1*1e-65000)