13

matplotlib の pgf バックエンドを使用すると、次のようなエラーが表示されることがあります。

! Dimension too large.
<to be read again> 
                   \advance 
l.69 ...o{\pgfqpoint{-11.400000in}{-235.382893in}}

これは LaTeX 処理ステップからのものです。matplotlib に png を要求した場合、または pgf ファイルが埋め込まれたドキュメントを処理した場合に発生します。これは、データの制限に比べて非常に狭い軸の制限を設定したときに発生します。したがって、pgf はデータセット全体を受信して​​処理またはプロットしようとし、意図した可視範囲外にあるポイントの一部は pgf の内部サイズ制限外にもあると想定しています。

MWE:

import matplotlib as mpl
mpl.use("pgf")
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5,5)
y = 100*np.exp(x)

plt.xlim((-0.1,0.1))
plt.ylim((99,101))

plt.plot(x,y)
plt.savefig('exp.png')

私の質問: matplotlib に限られたデータセットを pgf にフィードさせる方法はありますか? または、これに対する他の解決策はありますか?希望する制限に従って、pyplot コマンドに入力するデータを切り詰めることができますが、matplotlib には、ケースバイケースの多くのそわそわから私を救うための内部ソリューションがあることを願っています。(軸にスプライン パッチを追加する場合もあり、曲線の一部を切り取る方法がわかりません。)

私はいくつかのドキュメントを見get_clip_on()て、 とget_clip_box()ofを見ましLine2Dたが、通常のプロットコマンドの後、前者のメソッドはとにかく True を返し、後者は何らかのTransformedBbox仕様、おそらく軸自体を表すものを返します。

4

0 に答える 0