matplotlib - 增加分辨率以查看详细信息

Emm*_*uel 37 python matplotlib

我有一个由任务组成的大流程(大约600个),我创建了一个数字来观察它们的启动顺序和时间.为此,我使用了matplotlib和一个barh.

这个数字还可以(我的第一个matplotlib成功!),但是:

  • 我希望在导出时看到细节并放大图片(例如PNG),因为当matplotlib使用show()命令显示结果时,缩放选项允许
  • Y轴的图例太近,不可读

我试图提高分辨率,就像在其他SO帖子中所说的那样,这更好,但细节不够精确.以下是我到目前为止的结果:

  • 完整的结果

充分

  • 用matplotlib缩放

放大

你知道我如何提高可读性吗?非常感谢(否则,我的所有努力都将毫无用处,我担心......)

PS:我正在使用matplotlib 1.1.1和python 2.7.

Emm*_*uel 41

埃弗特的建议下,我设法通过使用非常小的字体的非常大的分辨率这样做.以下是最重要的步骤:

import pylab as pl
pl.figure(figsize=(70, 70)) # This increases resolution
pl.savefig('test.eps', format='eps', dpi=900) # This does, too
pl.annotate(..., fontsize='xx-small', ...)
Run Code Online (Sandbox Code Playgroud)


小智 22

只是为了记录,我将把我在第二条评论中提出的建议作为可能的答案.这可能并不总是有效,但测试显示了良好的结果:

import pylab as pl
pl.figure(figsize=(7, 7))  # Don't create a humongous figure
pl.annotate(..., fontsize=1, ...)   # probably need the annotate line *before* savefig
pl.savefig('test.pdf', format='pdf')   # no need for DPI setting, assuming the fonts and figures are all vector based
Run Code Online (Sandbox Code Playgroud)

它甚至可以显示分数字形(例如fontsize=0.1).您的里程可能会有所不同:我仅使用PDF后端测试了这一点,而不是EPS后端.

另外:我遗漏了DPI设置.在高分辨率打印机上打印时,您可能需要再次使用它.然后,您不应该,因为这可能是打印机设置:打印机如何光栅化(矢量)PDF图像.我根本不知道这些"提示"是否可以编码为postscript/PDF.