私はかなり新しいmatplotlib
です。それは、私はこの質問に対する明白な答えを見出していないと言いました。matplotlib subplotの図を画像ファイルに保存する
私はグループによって着色したかった散布図があります。plotting via a loopはway to rollでした。私が欲しいもの
import matplotlib.pyplot as plt
import pandas as pd
from pydataset import data
df = data('mtcars').iloc[0:10]
df['car'] = df.index
fig, ax = plt.subplots(1)
plt.figure(figsize=(12, 9))
for ind in df.index:
ax.scatter(df.loc[ind, 'wt'], df.loc[ind, 'mpg'], label=ind)
ax.legend(bbox_to_anchor=(1.05, 1), loc=2)
# plt.show()
# plt.savefig('file.png')
コメント解除plt.show()
利回り:ここ
は周りの検索、それはplt.savefig()
のように見えた方法です。ファイルを保存する。 plt.show()
を書き直してplt.savefig()
を実行すると、空白の画像が表示されます。 This questionは、show()
の前にsavefig()
を呼び出すことによってこれが原因であると示唆していますが、完全にコメントアウトしています。 Another questionは、私が直接ax
オブジェクトを保存することができます示唆コメントがありますが、それは私の伝説をカット:
同じ質問ではなくfig.savefig()
を使用する代替手段を持っています。私は同じ切り刻まれた伝説を得る。
ありthis questionが関連思われるのですが、私は(dtf
は、彼らがプロットしているpd.DataFrame
です)私は答えを適用するかどうかはわかりませんので、直接DataFrame
をプロットいないよ:
plot = dtf.plot()
fig = plot.get_figure()
fig.savefig("output.png")
感謝任意の提案のために。
編集:tight_layout()
をしようとするには、以下の提案をテストするために、私はこれを実行して、まだ空白のイメージファイルを取得:
fig, ax = plt.subplots(1)
plt.figure(figsize=(12, 9))
for ind in df.index:
ax.scatter(df.loc[ind, 'wt'], df.loc[ind, 'mpg'], label=ind)
ax.legend(bbox_to_anchor=(1.05, 1), loc=2)
fig.tight_layout()
plt.savefig('test.png')
'plt.tight_layout()'を試したことがありますか?それは – lkriener
@lkrienerがまだ 'plt.savefig()'の白いファイルを助けるかもしれません。私が 'axの前に走らせれば。figure.savefig() '、それはプロットに作物と私は完全に伝説を失う。 – Hendy
Hm ... fig.savefig()をtight_layoutと組み合わせて使用するとどうなりますか? – lkriener