增加大型散点图的可见性

时间:2018-08-22 18:48:21

标签: python matplotlib bioinformatics

我正在绘制一个点图(这里是对它的简要说明)https://en.wikipedia.org/wiki/Dot_plot_(bioinformatics)(最多是66x80,000x80,000 !!)。

我当前使用的方法是使用点的x,y坐标绘制matplotlib散点图。

问题是我无法设置绘图的插值,并且输出不是矢量图。这使图形在缩小时很难看。

代码如下:

v_x = np.random.randint(0, 80000, 300000)
v_y = v_x # the x, y cordinate of the dots.

f,axes = plt.subplots(11,11,figsize = (20,20))
for row in range(11):
    for col in range(11):

        axes[row,col].set_yticklabels([])
        axes[row,col].set_xticklabels([])

        if row > col:
            axes[row,col].axis('off')
        else:
            axes[row,col].set_xlim(0,len(v_x))
            axes[row,col].set_ylim(0,len(v_y))


            axes[row,col].scatter(v_x,v_y, c = '#000000', s=(72./300)**2*20, marker = 's', edgecolor= '', rasterized = True)
f.savefig('{}'.format('test.pdf'), facecolor='w', bbox_inches='tight', dpi = 300)

如果我不进行栅格化,则pdf文件包含太多点且无法打开,如果我进行栅格化,则缩小时很难看到该图。

我想知道是否有什么办法可以解决这个问题。

0 个答案:

没有答案