инверсия fill_between в питоне - PullRequest
0 голосов
/ 26 июня 2019

Я использую проекцию Матплотлиба "Моллвейд", чтобы сделать график ниже. Я использую ax.fill, чтобы затенить область, определенную точками в массиве eff. Тем не менее, мне нужно перенести это. Мне нужно затенить всю область графика, кроме той, которая заключена в 2D массив. Как я могу это сделать?

Вот минимальный код.

import ephem
import numpy as np
import matplotlib.pyplot as plt
ra_array = np.arange(0,360)

def invert(inp):
    x = np.remainder(inp+360-org,360) # shift RA values
    ind = x>180
    x[ind] -=360    # scale conversion to [-180, 180]
    return x

def get_gal_array(dec):
    ga_array = np.zeros((360,2))
    for ra in ra_array:
        eq = ephem.Equatorial(np.radians(ra), np.radians(dec))
        ga = ephem.Galactic(eq) 
        ga_array[ra] = np.degrees(ga.get())
    return np.radians(invert(ga_array[:,0])),np.radians(ga_array[:,1])

org = 0
fig = plt.figure(figsize=(10, 5))
ax = fig.add_subplot(111, projection="mollweide")
ax.set_xticklabels(tick_labels)     
ax.set_title("TesT")
ax.title.set_fontsize(15)
ax.set_xlabel("GL")
ax.xaxis.label.set_fontsize(12)
ax.set_ylabel("GB")
ax.yaxis.label.set_fontsize(12)
ax.grid(True)
eff = get_gal_array(-28)#eff is a 2D array of points
ax.scatter(eff[0],eff[1], s=3,  label="Effelsberg")
ax.fill(eff[0],eff[1])

example image

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