我是Python的初学者,所以我不知道这个bug的技术原因,也许我会在请求中遗漏一些内容。
我试图在同一个图上绘制两组不同的数据,但我的代码中有一些错误。 目的是绘制“脉冲轮廓”,例如,计数率与相位的关系,并且在相同的图上也绘制来自相同相位仓中的光谱分析的一些拟合分析的结果。 我正在使用 twinx()因为y轴有两个不同的比例。 但是,我必须在主代码中调用一个类,并且必须从一些给定的文本文件中读取该类。 当我尝试绘制不同的数据时,只需在代码中直接使用标准函数创建,就像在官方示例here中一样 然后没有问题出来。 我将发布我的代码,希望与课程的复杂性不会阻止对该主题的良好理解:
#!/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是主文件的名称。
我希望我按照规则发布。 有什么建议吗?