43

次のコードは、図の上と下にかなりのマージンがあるプロットを表示します。目立つ余白をなくす方法がわかりません。subplots_adjust期待どおりに動作しません。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(10),range(10))
ax.set_aspect('equal')
plt.tight_layout()

tight_layoutマージンの一部を削除しますが、すべてのマージンを削除するわけではありません。

私が望んでいたのは、実際にアスペクト比をカスタマイズされた値に設定し、同時に空白を削除することでした。

更新: Pierre H. が言うように、キーは Figure コンテナーのサイズを変更することです。私の質問は次のとおりです。図のサイズを任意の縦横比の軸のサイズに合わせる方法を提案できますか?

つまり、最初に Figure とその上に Axes を作成し、次に Axes のサイズを (たとえば縦横比を変更して) 変更します。これにより、通常、Figure コンテナーの一部が空のままになります。この段階で、Figure コンテナーの空白スペースをなくすために、Figure のサイズを適宜変更する必要があります。

4

7 に答える 7

74

数字からすべてのマージンを削除する方法を発見しました。私は使用しませんでしたがtight_layout()、代わりに使用しました:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(20,20))
ax = plt.subplot(111,aspect = 'equal')
plt.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0)

お役に立てれば。

于 2015-07-01T02:06:36.730 に答える
16

tight_layout(pad=0)あなたのニーズを満たすでしょう。 http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.tight_layout

于 2014-01-10T20:17:10.313 に答える
7

私はあなたが必要としていると思います、そしてそれは私にとってうまくいきます。

plt.axis('tight')

このコマンドは、データにぴったり合うように軸を自動的にスケーリングします。カスタマイズされた軸については、 Nuno Aniceto の回答も確認してください。ドキュメントはhttps://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.axisにあります。

を注意

plt.savefig(filename, bbox_inches='tight')

ラベルなどを含むすべての図の空白を削除するのに役立ちますが、軸内の空白は削除しません。

于 2017-08-11T09:54:49.627 に答える
5

subplot_adjust調整は によってオーバーライドされるため、呼び出しはここでは無関係だと思いますtight_layout。とにかく、これは図内ののサイズのみを変更します。

tcaswell が指摘したように、図のサイズを変更する必要があります。作成時 (以下の私の命題) または作成後にfig.set_size_inches. ここでは、引数を使用してアスペクト比 1:1 の図を作成していfigsize=(6,6)ます (もちろん、6 インチは任意の選択です)。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
ax.plot(range(10),range(10))
ax.set_aspect('equal')
plt.tight_layout()
于 2013-10-03T07:43:56.823 に答える
0

次のように使用できます: plt.subplots_adjust(wspace=1, hspace=0.5,left=0.1,top=0.9,right=0.9,bottom=0.1) plt.savefig() の項目: bbox_inches='tight' を削除します。

于 2019-12-22T06:15:05.417 に答える