python - windowsize - size figure matplotlib




matplotlibで描画される図形のサイズをどのように変更しますか? (9)

matplotlibで描画される図形のサイズをどのように変更しますか?


非推奨の注釈:
公式のMatplotlibガイドに従って、 pylabモジュールの使用はもはや推奨されません。 この他の答えで説明されているように、代わりにmatplotlib.pyplotモジュールを使用することを検討してください。

次のように動作するようです:

from pylab import rcParams
rcParams['figure.figsize'] = 5, 10

これにより、Figureの幅は5インチ、高さは10 インチになります。

次に、Figureクラスはこれを引数の1つのデフォルト値として使用します。


plt.rcParamsを使用して

Figure環境を使わずにサイズを変更したい場合は、この回避策もあります。 たとえば、 plt.plot()を使用している場合などです。

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

これは、インラインでプロットするときに非常に便利です(例:IPython Notebook)。

cmへの変換

figsizeタプルはインチを受け取ります。センチメートル単位で設定する場合は、2.54で除算する必要があります。 この質問を見てください。


Matplotlib メートル法をネイティブで使用することができないので、図のサイズをセンチメートルのような長さの合理的な単位で指定したい場合は、次のようにします( gns-ankコード)。

def cm2inch(*tupl):
    inch = 2.54
    if isinstance(tupl[0], tuple):
        return tuple(i/inch for i in tupl[0])
    else:
        return tuple(i/inch for i in tupl)

次に、あなたは以下を使用できます:

plt.figure(figsize=cm2inch(21, 29.7))

figureを描画した直後でも、Figureをサイズ変更します(少なくともQt4Agg / TkAggを使用していますが、MacOSXではなくmatplotlib 1.4.0を使用しています)。

matplotlib.pyplot.get_current_fig_manager().resize(width_px, height_px)

fig = ...行をコメントアウトしてみてください

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2

fig = plt.figure(figsize=(18, 18))
plt.scatter(x, y, s=area, alpha=0.5)
plt.show()

あなたがパンダで人物のサイズを変更する方法を探している場合は、次のようにすることができます:

df['some_column'].plot(figsize=(10, 5))

ここで、 dfはパンダのデータフレームです。 デフォルト設定を変更するには、次のようにします。

import matplotlib

matplotlib.rc('figure', figsize=(10, 5))

あなたは単に( matplotlib.figure.Figureから)以下を使うことができます:

fig.set_size_inches(width,height)

Matplotlib 2.0.0以降では、 forwardキーワードのデフォルト値はTrueため、キャンバスへの変更は直ちに表示さTrue

両方の代わりに高さを変更したい場合は、

fig.set_figwidth(val)またはfig.set_figheight(val)

これらはキャンバスを直ちに更新しますが、Matplotlib 2.2.0以降でのみ更新されます。

古いバージョン

上に指定したバージョンより古いバージョンでキャンバスをライブ更新するには、 forward=True明示的に指定する必要があります。 set_figheight関数とset_figheight関数は、Matplotlib 1.5.0より古いバージョンのforwardパラメータをサポートしていないことに注意してください。


これは私のためにうまくいく:

from matplotlib import pyplot as plt
F = gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True)#Set forward to True to resize window along with plot in figure.
plt.show() #or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array

これはまた役立つかもしれません: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html : http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html


次のように簡単なコードを試してください:

from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()

プロットする前にFigureのサイズを設定する必要があります。





visualization