wake-up-neo.com

Plotbreiteneinstellungen in ipython notebook

Ich habe folgende Grundstücke:

sound signals

Es würde schöner aussehen, wenn sie die gleiche Breite haben. Haben Sie eine Idee, wie es mit ipython notebook gemacht wird, wenn ich %matplotlib inline Verwende?

PDATE:

Zur Generierung beider Figuren benutze ich folgende Funktionen:

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()
72
pt12lol

Wenn du benutzt %pylab inline Sie können (in einer neuen Zeile) den folgenden Befehl einfügen:

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

Dies setzt alle Zahlen in Ihrem Dokument (sofern nicht anders angegeben) auf die Größe (10, 6), wobei der erste Eintrag die Breite und der zweite die Höhe ist.

Weitere Informationen finden Sie in diesem SO Post. https://stackoverflow.com/a/17231361/1419668

78
Will

Wenn Sie nicht in einem ipython-Notizbuch (wie dem OP) arbeiten, können Sie die Größe auch einfach bei der Deklaration der Abbildung angeben:

width = 12
height = 12
plt.figure(figsize=(width, height))
63
Ramon Martinez

So habe ich es gemacht:

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

Sie können Ihre eigenen Größen definieren.

61
aakinlalu