私はラテックスに埋め込む出版品質のプロットを作成しており、サイズとフォントに関して非常に正確にしたいと考えています (フォントが記事のサイズとプロットのサイズと同じになるように)。プロットがラテックスでスケーリングされないようにするために、正確なサイズにしたいのですが、できません。これが私のコードです:
import matplotlib.pyplot as plt
from matplotlib import rc, rcParams
from numpy import sin
rc('text', usetex=True)
rc('font', family='serif', serif='Computer Modern Roman', size=8)
rc('legend', fontsize=10)
width_in = 5
fig = plt.figure(1, figsize=(width_in, 2))
ax = fig.add_subplot(111)
ax.plot(range(0,100), sin(range(0,100)))
fig.tight_layout()
fig.savefig('test.eps', bbox_inches='tight', pad_inches=0)
plt.close()
問題は、bbox_inches='tight' および pad_inches=0 にあります。これらのオプションを追加すると、宣言された 5 インチではなく、プロットの幅が 4.76 インチになります。しかし、私は彼らがスペースを節約したい. それで、それを解決する方法は?
編集:ええと、答えは、を削除bbox_inches='tight'
しpad_inches=0
て使用することを示唆していtight_layout()
ます. その後、画像は適切なサイズになりますが、まだ白いパディングが残っています。で削除できますfig.tight_layout(pad=0)
が、図のタイトルがボックス内に移動し、見苦しくなります。一方で、使用tight_layout(rect=[...])
して目的の結果を得ることができますが、数値を正しく取得するのは手作業であり、好きではありません。したがって、現在、私の問題に対する簡単で一般的な解決策は見当たりません。