Python 2.7 如何使用APLpy或python 2.7在拟合图上绘制线段?

Python 2.7 如何使用APLpy或python 2.7在拟合图上绘制线段?,python-2.7,aplpy,Python 2.7,Aplpy,我想画一条线段,把一个图形上的两点连接起来 (x,y)这些点的坐标为(200250)和(300400) 我用APLpy来做这个 我的代码是: import matplotlib.pyplot as plt import aplpy import numpy as np fig = aplpy.FITSFigure('test.fits') fig.show_grayscale() a=np.ndarray(shape=(2,2)) a[0][0]=200 a[0][1]=250 a[1][0

我想画一条线段,把一个图形上的两点连接起来

(x,y)这些点的坐标为(200250)和(300400)

我用APLpy来做这个

我的代码是:

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

fig = aplpy.FITSFigure('test.fits')
fig.show_grayscale()

a=np.ndarray(shape=(2,2))
a[0][0]=200
a[0][1]=250
a[1][0]=300
a[1][1]=400

fig.show_lines(a)

plt.show() 
我正在使用APLpy的“fig.show_lines()”功能,如以下网页所述:

它说“使用numpy数组列表”作为参数来显示_行()

但我收到了以下错误消息:

Traceback (most recent call last):
File "draw.py", line 16, in <module>
fig.show_lines(a)
File "<string>", line 2, in show_lines
File "/home/swapnil/anaconda/lib/python2.7/site-packages/aplpy/decorators.py", line  25, in _auto_refresh
return f(*args, **kwargs)
File "/home/swapnil/anaconda/lib/python2.7/site-packages/aplpy/aplpy.py", line 1275, in show_lines
xp, yp = wcs_util.world2pix(self._wcs, line[0, :], line[1, :])
IndexError: too many indices
回溯(最近一次呼叫最后一次):
文件“draw.py”,第16行,在
图2显示了线(a)
文件“”,第2行,在显示行中
文件“/home/swapnil/anaconda/lib/python2.7/site packages/aplpy/decorators.py”,第25行,自动刷新
返回f(*args,**kwargs)
文件“/home/swapnil/anaconda/lib/python2.7/site packages/aplpy/aplpy.py”,第1275行,显示行
xp,yp=wcs_util.world2pix(self._wcs,第[0,:]行,第[1,:]行)
索引器:索引太多
任何帮助都将不胜感激


谢谢。

我知道它应该是
2xN
numpy阵列的列表:

x = np.array([[200], [300]])
y = np.array([[250], [400]])

fig.show_lines([x, y])
嗯,


Germanán.

您需要这样做:

iline = np.array([[x1, x2],[y1,y2]])
fig.show_lines([iline], color = 'r')

其中
x1
x2
y1
y2
的单位正确(对我来说这是度)

我最近遇到了类似的问题,答案似乎不起作用。你有没有试过用

    matplotlib.pyplot.plot ( usually called as plt.plot)?
这对我来说是个好办法

我使用以下命令打开了一个地物对象:

    fig = aplpy.FITSFigure('fitsfile.fits')
然后就这么做了:

    plt.plot([x1, x2], [y1, y2], color = 'r')

而且效果非常好。我甚至不必使用RA和Dec,而是直接使用astropy的all_world2pix()获得的像素坐标。我很确定aplpy也有类似的功能,但我从未尝试过。

事实上,我做了一个测试,但它没有画出界限。我想看看@astrofrog能说些什么。