所以我试图用Python的matplotlib绘制2个不同的相同尺寸的数组。这是我目前拥有的代码:Python简单的线性绘图
from numpy import *
from pylab import *
import matplotlib.pyplot as plt
p, pdot, s400, dist=loadtxt("cc45list.txt", usecols=(1,2,3,4), unpack=True)
for i in arange(0,45,1):
k = (s400*(dist**2))/((p**1)*(pdot**0.5))
kbar=sum(k)
var=abs(k-kbar)
x=((p**1)*(pdot**0.5))
y=s400*(dist**2)
kbararray=ones((1,45))*kbar
我试图绘制与x轴是x
和Y轴是kbararray
(这只是在回路计算的值相同的阵列)的简单线条。我尝试使用matplotlib的该位这在过去一直为我的其他地块:
plot(x,kbararray)
,但我一直落得recieveing此错误消息:
Traceback (most recent call last):
File "C:\PortablePython_1.1_py2.6.1\App\April_2010\graphing lines.py", line 3, in <module>
plot (range(0,11),[9,4,5,2,3,5,7,12,2,3],'.-',label='sample1')
File "C:\PortablePython_1.1_py2.6.1\App\Lib\site-packages\matplotlib\pyplot.py", line 2141, in plot
ret = ax.plot(*args, **kwargs)
File "C:\PortablePython_1.1_py2.6.1\App\Lib\site-packages\matplotlib\axes.py", line 3432, in plot
for line in self._get_lines(*args, **kwargs):
File "C:\PortablePython_1.1_py2.6.1\App\Lib\site-packages\matplotlib\axes.py", line 311, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "C:\PortablePython_1.1_py2.6.1\App\Lib\site-packages\matplotlib\axes.py", line 288, in _plot_args
x, y = self._xy_from_xy(x, y)
File "C:\PortablePython_1.1_py2.6.1\App\Lib\site-packages\matplotlib\axes.py", line 228, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
从我研究这个错误通常会出现,如果你试图绘制两个不同维度的数组,但我相信我的维度是相同的,对吧?那么,为什么我会得到这个错误?对不起,如果这是一个基本的问题/其他地方回答,但我找不到任何东西。谢谢。
为什么'(P ** 1)'..另外,为什么计算循环相同的值?计算一次。另外,你可以通过打印出len(x)和len(kbarray)来检查'x'和'kbarray'的尺寸。这可能有助于找出问题。 – 2012-03-25 19:31:55