Astropy matplotlib 和绘制银河坐标
Astropy matplotlib and plot galactic coordinates
我正在尝试使用 python 绘制银河坐标图。假设我有以下数据:
数据 = [(0.261, -7.123, 13.03, 'Unidentified'), (-0.326, 77, 13.03, 'Galaxies')]
其中每个元组的形式为 (ra, dec, flux, type)。
我被要求使用astropy + matplotlib,所以:
c = SkyCoord(ra = ra*u.degree, dec = dec*u.degree)
galactic = c.galactic
这是我的问题所在,我正在使用此代码:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# lon_0 is central longitude of projection.
# resolution = 'c' means use crude resolution coastlines.
m = Basemap(projection='hammer',lon_0=0,resolution='c')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,120.,30.))
m.drawmeridians(np.arange(0.,420.,60.))
m.drawmapboundary(fill_color='aqua')
plt.title("Hammer Projection")
plt.show()
但是我无法在银河坐标中绘制数据,我也不知道为什么。我还需要每个点根据类型具有不同的颜色,并且根据通量值具有不同的大小。我需要实现这样的目标(我是 python 的新手,我从未使用过 astropy,我还没有找到很好的例子):
希望有人能提供帮助。
查看http://www.astropy.org/astropy-tutorials/plot-catalog.html底部的示例。在绘制银河坐标时,我 运行 遇到的一个常见问题是您想要绘制从 -180 到 +180 的坐标,但默认坐标是从 0 到 360。您可以使用 wrap_at
更改此设置,例如:
plot(galactic.l.wrap_at(180*u.deg), galactic.b.wrap_at(180*u.deg))
我正在尝试使用 python 绘制银河坐标图。假设我有以下数据:
数据 = [(0.261, -7.123, 13.03, 'Unidentified'), (-0.326, 77, 13.03, 'Galaxies')]
其中每个元组的形式为 (ra, dec, flux, type)。
我被要求使用astropy + matplotlib,所以:
c = SkyCoord(ra = ra*u.degree, dec = dec*u.degree)
galactic = c.galactic
这是我的问题所在,我正在使用此代码:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# lon_0 is central longitude of projection.
# resolution = 'c' means use crude resolution coastlines.
m = Basemap(projection='hammer',lon_0=0,resolution='c')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,120.,30.))
m.drawmeridians(np.arange(0.,420.,60.))
m.drawmapboundary(fill_color='aqua')
plt.title("Hammer Projection")
plt.show()
但是我无法在银河坐标中绘制数据,我也不知道为什么。我还需要每个点根据类型具有不同的颜色,并且根据通量值具有不同的大小。我需要实现这样的目标(我是 python 的新手,我从未使用过 astropy,我还没有找到很好的例子):
希望有人能提供帮助。
查看http://www.astropy.org/astropy-tutorials/plot-catalog.html底部的示例。在绘制银河坐标时,我 运行 遇到的一个常见问题是您想要绘制从 -180 到 +180 的坐标,但默认坐标是从 0 到 360。您可以使用 wrap_at
更改此设置,例如:
plot(galactic.l.wrap_at(180*u.deg), galactic.b.wrap_at(180*u.deg))