Масштабирование сферической проекции в matplotlib / pyplot - PullRequest
0 голосов
/ 07 ноября 2019

Я показываю каталог галактик, спроецированных на небо. Вот примерные данные и пример кода:

# 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);

Результат следующий:

Я хотел бы:

  1. выполнить масштабирование так, чтобы отображалась только соответствующая часть проекции (в этом примере, часть ([0,60], [0,60])) - при этом по-прежнему отображалась метка топора («RA»))

  2. переместить метки тика RA из-за оси в нижнюю, поскольку она становится нечитаемой для реальных данных. Я пробовал различные элементы управления Matplotlib, но он не работал в режиме проецирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...