2016-06-14 4 views
0

Dans la classe normale des axes matplotlib, il est possible de définir un quadrillage pour avoir une certaine transparence (niveau alpha). Je tente d'utiliser ce package avec le APLpy en utilisant les éléments suivants:APLpy/matplotlib: Coordonner les niveaux alpha de la grille pour la qualité EPS. Figure

fig = pyplot.figure(figsize=(18,8)) 

gridspec_layout = gridspec.GridSpec(1,2) 

gridspec_layout1 = gridspec.GridSpecFromSubplotSpec(3, 3, subplot_spec=gridspec_layout[1], hspace=0.0, wspace=0.0) 

pyplot_0 = fig.add_subplot(gridspec_layout1[0]) 
pyplot_1 = fig.add_subplot(gridspec_layout1[1]) 
pyplot_2 = fig.add_subplot(gridspec_layout1[2]) 
pyplot_3 = fig.add_subplot(gridspec_layout1[3]) 
pyplot_4 = fig.add_subplot(gridspec_layout1[4]) 
pyplot_5 = fig.add_subplot(gridspec_layout1[5]) 
pyplot_6 = fig.add_subplot(gridspec_layout1[6]) 
pyplot_7 = fig.add_subplot(gridspec_layout1[7]) 
pyplot_8 = fig.add_subplot(gridspec_layout1[8]) 

M33 = aplpy.FITSFigure('myfits.fits', figure=fig, subplot=list(gridspec_layout[0].get_position(fig).bounds), dimensions=[0, 1], slices=[0]) 

M33 = aplpy.FITSFigure('myfits.fits') 
M33.show_grid() 
M33.set_grid_alpha(0.1) 

pyplot.savefig('myeps.eps', format='eps', dpi=800, clobber=True) 

Ainsi, la transparence est très élevée et très subtile. Cependant, lorsque je sauvegarde le tracé en tant que fichier au format .eps, la transparence est perdue et mes lignes sont blanches. En matplotlib normale, j'utilise habituellement:

ax.set_rasterized(True) 

De sorte que la transparence ressemble à ce qu'elle devrait être.

Je me demandais s'il y avait un équivalent pour la classe aplpy.FITSFigure ...?

Merci beaucoup!

+0

Vous pouvez regarder 'fig.axes' pour obtenir la liste des' Axes' qu'il contient. – tacaswell

Répondre

1

Dans la fonction save, il existe un argument optionnel, transparent. transparent est défini sur False par défaut. Si vous le définissez sur True, la transparence doit être préservée lorsque vous enregistrez.

Il devrait être quelque chose comme:

M33.save(filename, transparent=True, ..) 

ETA: Dans les commentaires ci-dessous, il a été souligné que le format EPS ne supporte pas la transparence, de sorte que le code ci-dessus ne fonctionnera pas si vous vous enregistrez dans ce format.

+0

J'utilise une routine de tracé de figures légèrement plus compliquée que le tracé de base 1x1. J'ai essayé cela à pas de chance. Dois-je inclure ma disposition gridspec? – user3125347

+0

Bien sûr, incluez la disposition de gridspec. Êtes-vous en train de régler le dpi? – phormalitize

+0

Oui. Je vais inclure tout ce que je pense est peut-être pertinent – user3125347