python - windowsize - size figure matplotlib
matplotlibで描画される図形のサイズをどのように変更しますか? (9)
非推奨の注釈:
公式のMatplotlibガイドに従って、pylab
モジュールの使用はもはや推奨されません。 この他の答えで説明されているように、代わりにmatplotlib.pyplot
モジュールを使用することを検討してください。
次のように動作するようです:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
これにより、Figureの幅は5インチ、高さは10 インチになります。
次に、Figureクラスはこれを引数の1つのデフォルト値として使用します。
matplotlibで描画される図形のサイズをどのように変更しますか?
plt.rcParamsを使用して
Figure環境を使わずにサイズを変更したい場合は、この回避策もあります。 たとえば、 plt.plot()
を使用している場合などです。
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)
これは、インラインでプロットするときに非常に便利です(例:IPython Notebook)。
cmへの変換
figsize
タプルはインチを受け取ります。センチメートル単位で設定する場合は、2.54で除算する必要があります。 この質問を見てください。
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のサイズを設定する必要があります。