在一组补丁周围画一个周长?

时间:2019-11-22 22:52:24

标签: python matplotlib patch astropy fits

某些背景:我正在尝试使用FITS数据制作区域文件。我使用astropymatplotlib.pyplot绘制了我感兴趣的部分的2D直方图,并编写了一个程序,对数据进行分箱并确定哪些分箱属于目标区域。然后,我使用matplotlib.patches“突出显示”了属于该区域一部分的2D直方图的分格。

这是我的代码的绘图部分:

indices = range(1, 1295, 1)
NBINS=(360,360)
fig,ax = plt.subplots(1)
ax.hist2d(data['DET1X'], data['DET1Y'], NBINS, range=[[1, 360], [1,360]], cmap='gray')
ax.set_xlabel('DET1X')
ax.set_ylabel('DET1Y')
for i in region_bins:
    cornerx = (indices[i]// 36)*10
    cornery = (indices[i] % 36)*10
    SL = patches.Rectangle((cornerx,cornery), 10, 10, edgecolor='none', facecolor='yellow', alpha = 0.4)
    ax.add_patch(SL)
plt.show()

这是我得到的结果:result

现在,我想在该区域周围绘制一个周长,因此基本上是一个多边形,其中垃圾箱的所有黄色边缘均与灰色背景相交。多边形必须是所有正方形的并集的一种形状,因此它将在左侧呈锯齿状,而在底部和右侧则呈直线。它还需要包括所有小孔,而不是本身有孔。我怎样才能做到这一点?我以前看过的问题是针对我不熟悉的语言的情况,这些问题是特定于特定项目的,就像我自己的问题一样。最终,我希望能够制作一个仅列出相对于原始2D直方图的区域多边形坐标的文件。有想法吗?

0 个答案:

没有答案