Мне нужно отобразить каталог галактик, спроецированных на небо. Здесь уместно не все небо, поэтому мне нужно центрировать зум на соответствующей части. Я в порядке с более или менее любыми проекциями, такими как Lambert, Mollweide, et c. Вот фиктивные данные и образец кода с использованием Mollweide:
# Generating mock data
np.random.seed(1234)
(RA,Dec)=(np.random.rand(100)*60 for _ in range(2))
# Creating projection
projection='mollweide'
fig = plt.figure(figsize=(20, 10));
ax = fig.add_subplot(111, projection=projection);
ax.scatter(np.radians(RA),np.radians(Dec));
# Creating axes
xtick_labels = ["$150^{\circ}$", "$120^{\circ}$", "$90^{\circ}$", "$60^{\circ}$", "$30^{\circ}$", "$0^{\circ}$",
"$330^{\circ}$", "$300^{\circ}$", "$270^{\circ}$", "$240^{\circ}$", "$210^{\circ}$"]
labels = ax.set_xticklabels(xtick_labels, fontsize=15);
ytick_labels = ["$-75^{\circ}$", "$-60^{\circ}$", "$-45^{\circ}$", "$-30^{\circ}$", "$-15^{\circ}$",
"$0^{\circ}$","$15^{\circ}$", "$30^{\circ}$", "$45^{\circ}$", "$60^{\circ}$",
"$75^{\circ}$", "$90^{\circ}$"]
ax.set_yticklabels(ytick_labels,fontsize=15);
ax.set_xlabel("RA");
ax.xaxis.label.set_fontsize(20);
ax.set_ylabel("Dec");
ax.yaxis.label.set_fontsize(20);
ax.grid(True);
Результат следующий:
Я пробовал различные set_whateverlim
, set_extent
, clip_box
и т. Д., А также импорт карт и передача ccrs.LambertConformal(central_longitude=...,central_latitude=...)
в качестве аргументов. Мне не удалось получить результат.
Кроме того, я хотел бы сместить метки RA вниз, так как их трудно прочитать с реальными данными. К сожалению, ax.tick_params(pad=-5)
ничего не делает.