我正在绘制一个点图(这里是对它的简要说明)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文件包含太多点且无法打开,如果我进行栅格化,则缩小时很难看到该图。
我想知道是否有什么办法可以解决这个问题。