12

rasterized=TruePDF出力を使用してキーワードを使用してプロット内の多くの線をラスター化するときに問題が発生します。いくつかのバージョン情報:

  • matplotlibバージョン1.1.1rc
  • ubuntu 12.04
  • Python 2.7.3

これが私の問題を示す基本的な例です:

# Import matplotlib to create a pdf document
import matplotlib
matplotlib.use('Agg')
from matplotlib.backends.backend_pdf import PdfPages
pdf = PdfPages('rasterized_test.pdf')

import matplotlib.pylab as plt

# some test data
import numpy as np
ts = np.linspace(0,2*np.pi,100) * np.ones((200,100)) 
ts += (np.linspace(0, np.pi, 200)[np.newaxis] * np.ones((100,200))).T
ys = np.sin(ts)

fig = plt.figure() 
ax = fig.add_subplot(111)
ax.plot(ts[0], ys.T, color='r', lw=0.5, alpha=0.5, rasterized=True)
pdf.savefig()

pdf.close()

基本的に、私は多くの(この場合は200)密接に重なり合う線を持っているため、結果の図(ラスター化されていない)をロードするのが非常に困難になります。これらの線をラスタライズして、軸ラベル(およびプロットの他の要素(図には示されていません))がベクトルのままで、ソリューションの軌道が単一のラスター背景にフラット化されるようにします。ただし、上記のコードを使用すると、各軌道が個別にラスター化され、複数のレイヤーが作成されるため、画像の読み込みに長い時間がかかります。(結果のpdfをinkscapeのようなプログラムで開くと、各軌道を個別に操作できます。)

ラスター化されたすべての要素を単一のレイヤーにフラット化して、PDFサイズを大幅に縮小することは可能ですか?

ありがとう!

4

1 に答える 1

10

コードを次のように変更します。

ax = fig.add_subplot(111, rasterized=True)
ax.plot(ts[0], ys.T, color='r', lw=0.5, alpha=0.5)
于 2012-08-24T03:43:16.790 に答える