Решение
from astropy import units as u
from astropy.coordinates import SkyCoord
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
# Пустые списки для данных
RA = []
Dec = []
Fluence = []
i=0
with open("Gamma-ray burst. Swift data.txt", "r") as f:
for line in f:
if i!=0:
data = line.split()
RA.append(float(data[1]))
Dec.append(float(data[2]))
try:
Fluence.append(float(data[3]))
except ValueError:
RA.pop()
Dec.pop()
i=i+1
# Запись данных в класс SkyCoord
w = SkyCoord(RA*u.degree,Dec*u.degree)
# Перевод в галактические координаты
w_gal = w.galactic
def plot_mwd(RA,Dec,col=0, org=0,projection='aitoff'):
x = np.remainder(RA+360-org,360) # сдвиг значений
ind = x>180
x[ind] -= 360 # преобразование шкалы в [-180, 180]
# Создание изображения
fig = plt.figure(figsize=(15, 10))
tick_labels = np.array([-150, -120, -90, -60, -30, 0, 30, 60, 90, 120, 150])
ax = fig.add_subplot(111, projection=projection, facecolor ='black')
ax.set_xticklabels(tick_labels, color = 'w')
cm = plt.cm.get_cmap('jet')
SC = ax.scatter(np.radians(x),np.radians(Dec), s = 30, c = col, marker = '.', cmap = cm)
ax.grid(color='white', linestyle='-', linewidth=0.2)
ax.set_title('Gamma-ray burst. Swift data',pad = 40)
ax.title.set_fontsize(30)
# Настройка colorbar
cbar = plt.colorbar(SC, shrink=0.8, pad=0.10, orientation='horizontal')
cbar.ax.tick_params(labelsize=10)
cbar.set_label('Fluence (15-150 keV) [$10^{-7}$ erg/cm$^2$]', fontsize=15)
# plt.savefig('Gamma-ray burst. Swift data.jpg')
coord = np.array([(w_gal.l.degree,w_gal.b.degree)])
# цикл для нормального отображения цветов (т.к. в основном все всплески со значениями 1-20)
for i in range(0,len(Fluence),1) :
if Fluence[i] > 100:
Fluence[i] = 100
Fluence = np.array([Fluence])
plot_mwd(coord[:,0],coord[:,1],Fluence[:])
plt.show()