41

タスクで構成された大きなプロセス (約 600) があり、それらが起動される順序と時間を見る図を作成しました。これを行うには、matplotlib と barh を使用しました。

図は問題ありません(私の最初のmatplotlibの成功です!)が、:

  • show()matplotlibがコマンドで結果を表示するときにズームオプションが許可されるため、エクスポート時に(たとえば、PNGとして)画像の詳細とズームを表示したいと思います
  • Y 軸の凡例が近すぎて読めない

この他のSO投稿で述べたように、解像度を上げようとしましたが、これは優れていますが、詳細は十分に正確ではありません. これまでの私の結果は次のとおりです。

  • 完全な結果

満杯

  • matplotlib でズーム

ズーム

読みやすさを改善する方法を知っていますか?どうもありがとうございました (そうしないと、私のすべての努力が無駄になるのではないかと心配しています...)

PS: 私は matplotlib 1.1.1 と python 2.7 を使用しています。

4

2 に答える 2

43

私は、 Evertのアドバイスに従って、非常に小さなフォントで非常に大きな解像度を使用することで、なんとかそうすることができました。最も重要な手順は次のとおりです。

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', ...)
于 2012-08-30T15:40:09.243 に答える
25

念のため、2番目のコメントで行った提案も可能な回答としてここに記載します。これは常に機能するとは限りませんが、テストでは良好な結果が示されます。

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

小数のフォントサイズ(例fontsize=0.1)でも機能するように見えます。マイレージは異なる場合があります。これはPDFバックエンドでのみテストし、EPSバックエンドではテストしていません。

また、DPI設定を省略しました。これを高解像度プリンターで印刷する場合は、再度必要になることがあります。繰り返しになりますが、これはおそらく代わりにプリンター設定であるため、すべきではありません。プリンターが(ベクター)PDF画像をラスター化する方法です。この種の「ヒント」をpostscript/PDFにコード化できるかどうかはわかりません。

于 2012-08-31T09:51:54.463 に答える