ipythonノートブックで幅設定をプロットする


81

私は次のプロットを持っています:

音声信号

同じ幅の方が見栄えがします。私が使用しているときにipythonノートブックでそれを行う方法を知っています%matplotlib inlineか?

更新:

両方の図を生成するために、次の関数を使用しています。

import numpy as np
import matplotlib.pyplot as plt

def show_plots2d(title, plots, points, xlabel = '', ylabel = ''):
    """
    Shows 2D plot.

    Arguments:
        title : string
            Title of the plot.
        plots : array_like of pairs like array_like and array_like
            List of pairs,
            where first element is x axis and the second is the y axis.
        points : array_like of pairs like integer and integer
            List of pairs,
            where first element is x coordinate
            and the second is the y coordinate.
        xlabel : string
            Label of x axis
        ylabel : string
            Label of y axis
    """
    xv, yv = zip(*plots)
    y_exclNone = [y[y != np.array(None)] for y in yv]
    y_mins, y_maxs = zip(*
        [(float(min(y)), float(max(y))) for y in y_exclNone]
    )
    y_min = min(y_mins)
    y_max = max(y_maxs)
    y_amp = y_max - y_min
    plt.figure().suptitle(title)
    plt.axis(
        [xv[0][0], xv[0][-1], y_min - 0.3 * y_amp, y_max + 0.3 * y_amp]
    )
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    for x, y in plots:
        plt.plot(x, y)
    for x, y in points:
        plt.plot(x, y, 'bo')
    plt.show()

def show_plot3d(title, x, y, z, xlabel = '', ylabel = '', zlabel = ''):
    """
    Shows 3D plot.

    Arguments:
        title : string
            Title of the plot.
        x : array_like
            List of x coordinates
        y : array_like
            List of y coordinates
        z : array_like
            List of z coordinates
        xlabel : string
            Label of x axis
        ylabel : string
            Label of y axis
        zlabel : string
            Label of z axis
    """
    plt.figure().suptitle(title)
    plt.pcolormesh(x, y, z)
    plt.axis([x[0], x[-1], y[0], y[-1]])
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.colorbar().set_label(zlabel)
    plt.show()

%matplotlib notebook
grisaitis

回答:


80

使用する%pylab inline場合は、(新しい行に)次のコマンドを挿入できます。

%pylab inline
pylab.rcParams['figure.figsize'] = (10, 6)

これにより、ドキュメント内のすべての図が(特に指定されていない限り)サイズ(10, 6)に設定されます。最初のエントリは幅、2番目のエントリは高さです。

詳細については、このSO投稿を参照してください。https://stackoverflow.com/a/17231361/1419668


12
単にfigsize(10, 6)仕事と時間を覚えやすくします。
Alleo 2016年

68

これは私がそれをした方法です:

%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (12, 9) # (w, h)

独自のサイズを定義できます。


4
plt.rcParams["figure.figsize"] =(12,9) これも機能します
Roman Kazakov 2018年

67

(OPのような)ipythonノートブックを使用していない場合は、Figureを宣言するときにサイズを宣言することもできます。

width = 12
height = 12
plt.figure(figsize=(width, height))

4
これがどの単位で測定されるかについて何か考えがありますか?
Martin Thoma 2016年

1
単位はインチですが、YMMVです(ディスプレイのDPIがmatplotlibの仮定と一致しない場合があります)。また、これはOPの環境であるiPythonNotebookでは機能しません。
ホブ2016

3
@hobsどのバージョンのiPythonノートブックを実行していますか?Jupyterで機能しています。
ラモンマルティネス

1
emacs / ein 20161228.741で私のために働きます
Ott Toomet 2017

3
@hobsこれはipythonで機能します。私のサイトのipythonは少しハッキングされていますが、一般的なipythonでも機能しなかった場合は非常に驚きます。
ジョナサンメイヤー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.