У меня есть несколько полигонов, которые я хотел бы построить в правом пространстве Вознесения/Склонения с APLpy, с полигонами, окрашенными другим 1D-списком, но я не могу получить show_polygons()
для работы.aplpy show_polygons() с раскрашенными гранями
Я пытался адаптировать ответ от APLpy show markers normalized by a colormap, но когда я запускаю его, show_polygons()
не понимает kwargs cmap
, norm
или c
таким же образом show_markers()
делает.
Мой адаптированный, автономный скрипт:
import aplpy, numpy
from numpy import array
import matplotlib.pyplot as plt
from matplotlib import cm, colors
polygons = [array([[ 46.33681474, 34.75536787],
[ 45.04752709, 35.37650737],
[ 44.63035494, 34.73768723],
[ 46.33681474, 34.75536787]]), array([[ 46.45913142, 34.69050337],
[ 45.04717721, 35.37189917],
[ 44.6205633 , 34.72362768],
[ 46.45913142, 34.69050337]]), array([[ 46.52741447, 34.64997822],
[ 45.04457814, 35.36619781],
[ 44.60486296, 34.70107236],
[ 46.52741447, 34.64997822]])]
zvalues = [ 1.02018589e-10, 9.38471764e-12, 2.15806865e-11]
cmap1 = cm.YlOrBr
norm1 = colors.Normalize(numpy.min(zvalues), numpy.max(zvalues))
fig = aplpy.FITSFigure(numpy.zeros((10,10)))
fig.show_polygons(polygons, cmap=cmap1, norm=norm1, c=zvalues, facecolor='none')
plt.save(fname='plot.png')
Запуск это вызывает show_polygons()
поднять различные AttributeErrors:
AttributeError: Unknown property cmap
AttributeError: Unknown property norm
AttributeError: Unknown property c
Мои версии вещей:
$ python --version
Python 3.5.1 :: Continuum Analytics, Inc.
$ python
>>> import matplotlib
>>> print(matplotlib.__version__)
1.5.1
>>> import aplpy
>>> print(aplpy.__version__)
1.1.1
Как я могу получить show_polygons()
работать?
Спасибо за ответ, который, кажется, частично работает. Похоже, что все координаты находятся в декартовой системе пикселя (из-за numpy.zeros())? Мне это нужно, где координаты углов многоугольника являются сферическими (RA, Dec) координатами, а не декартовыми (x, y). –
Вам необходимо передать действительный HDU или путь к файлу подгонки к файлу aplpy.FITSFigure, чтобы он отображался в координатах неба. Это не то, что показывает ваше оригинальное сообщение, поскольку вы даете ему только массив пикселей. –
Я использовал 'zeros()' из-за другого примера, который я нашел, не зная всех его последствий. У меня нет подходящего файла для начала. Я думаю, что 'FITSFigure' может принять объект' astropy.wcs.WCS() 'вместо' zeros() ', но я не могу понять, как получить одну настройку для J2000 RA/Dec. Возможно, это тема для нового вопроса stackoverflow. –