APLpy / matplotlib:协调EPS质量数据的网格alpha级别

时间:2016-06-14 13:19:12

标签: python matplotlib astropy aplpy

在普通的matplotlib轴类中,可以将网格线设置为具有一定的透明度(alpha级别)。我正在尝试使用以下内容在APLpy包中使用它:

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)

所以透明度非常高且非常微妙。但是,当我将绘图保存为.eps格式文件时,透明度会丢失,我的线条会变白。在普通的matplotlib中,我通常使用:

ax.set_rasterized(True)

使透明度看起来应该如此。

我想知道aplpy.FITSFigure类是否有相应的内容......?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在save函数中,有一个可选参数,transparent。默认情况下,transparent设置为False。如果将其设置为True,则保存时应保留透明度。

所以它应该是这样的:

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

ETA:在下面的评论中指出EPS格式不支持透明度,因此如果您以该格式保存,上述代码将无效。