iPython Notebook中的绘图宽度设置


80

我有以下情节:

声音信号

如果它们具有相同的宽度,它将看起来更好。您是否知道在使用时如何在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

Answers:


80

如果使用%pylab inline,可以(在新行中)插入以下命令:

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

这会将您文档中的所有图形(除非另有说明)设置为size (10, 6),其中第一个输入为宽度,第二个输入为高度。

有关更多详细信息,请参见此SO帖子。https://stackoverflow.com/a/17231361/1419668


12
只是figsize(10, 6)使工作和时间更容易记住。
Alleo

67

如果您不在ipython笔记本(如OP)中,则在声明图形时也可以声明大小:

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

4
您是否知道以哪种单位进行测量?
Martin Thoma

1
单位为英寸,但单位为YMMV(显示器的DPI可能与matplotlib的假设不符)。另外,这在OP的环境(iPython Notebook)中不起作用!
滚刀

3
@hobs您正在运行哪个版本的iPython Notebook?它在Jupyter中为我工作。
拉蒙·马丁内斯

1
在emacs / ein中为我工作20161228.741
Ott Toomet

3
@hobs在ipython中对我有用。我网站的ipython遭到了轻微入侵,但是如果它也不适用于通用ipython,我将感到非常惊讶。
乔纳森·梅耶

67

这是我做到的方式:

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

您可以定义自己的尺​​寸。


4
plt.rcParams["figure.figsize"] =(12,9) 这也有效
Roman Kazakov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.