0

我是 Python 的初学者,所以我不知道 bug 的技术原因,可能我会错过请求中的某些内容。

我试图在同一个图上绘制两组不同的数据,但我的代码有问题。目的是绘制“脉冲曲线”,例如计数率与相位的关系,并且在同一图上还绘制来自同一相位箱中光谱分析的一些拟合分析的结果。
我使用twinx() 因为 y 轴有两个不同的比例。但是,我必须在主代码中调用一个类,而这个类是从某些给定文本文件中读取数据所必需的。
当我尝试绘制不同的数据时,只需在代码中直接使用标准函数创建,就像这里的官方示例一样,就没有问题了。我将发布我的代码,希望与类的复杂性不会妨碍对主题的良好理解:

#!/usr/bin/env python
 
import glob, re, sys, os
sys.path.append('/path-to-the-class-file/')
 
from scipy import *
from pylab import *
from prs import *
from scipy import optimize
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
import pyfits
           
#--------------------------------------------------------------------------------------------#      
# *data* is the class that read the data
 
data=Data('1131', array(['0.0_0.10','0.10_0.24','0.24_0.40','0.40_0.60','0.60_0.83','0.83_1.0']), array(['0.0_0.10','0.10_0.24','0.24_0.40','0.40_0.60','0.60_0.83','0.83_1.0']), 8, 3)
 
pp=pyfits.open('/path-to-the-fits-file-with-the-data/')
phase = pp[1].data.field(0)
rate = pp[1].data.field(2)
pp.close()
 
ax1 = subplot(311)
ax1.plot(phase, rate)
ay1 = ax1.twinx()
 
ecyc=data.ecyc1
ay1.plot(phase, ecyc)

我没有指定任何关于该课程的内容,因为我不确定它是否有用。我收到的错误如下:

    Traceback (most recent call last):
  File "prs2.py", line 36, in <module>
    ay1.plot(phase, ecyc) #, yerr = (demin, demax))
  File "/science/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/axes.py", line 3783, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/science/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/axes.py", line 317, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "/science/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/axes.py", line 294, in _plot_args
    x, y = self._xy_from_xy(x, y)
  File "/science/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/axes.py", line 234, in _xy_from_xy
    raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension

pr2.py 是主文件的名称。

我希望我已经按照规则发布。请问有什么建议吗?

4

0 回答 0