2015-04-12 52 views
62

我已經得到了以下情節:情節寬度設置

sound signals

它看起來更好,如果他們有相同的寬度。當我使用%matplotlib inline時,你有任何想法如何在ipython筆記本上做到這一點?

UPDATE:

同時生成數字,我現在用的是以下功能:如果使用%pylab 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() 
+0

你能給我們一個你正在使用的matplotlib的小例子,只是爲了完整性嗎? –

+0

好的,完整的:) – pt12lol

回答

62

插入下面的命令:

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

這將設置您的文檔中的所有數字(除非另有說明)的尺寸爲(10, 6),其中第一項是寬度,第二項是高度。

查看此SO貼子獲取更多詳情。 https://stackoverflow.com/a/17231361/1419668

+8

只是'figsize(10,6)'的工作和時間更容易記住。 – Alleo

53

如果您在申報圖中不是在IPython的筆記本電腦(如OP),你也可以只聲明大小:

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

你有什麼想法,在哪個單位這是衡量? –

+1

單位是英寸,但是YMMV(您的顯示器的DPI可能與matplotlib的假設不匹配)。另外,這在iP的筆記本電腦環境中無法使用! – hobs

+2

@ hobs您運行的是哪種版本的iPython筆記本?它在Jupyter爲我工作。 –

46

這是這樣,我做到了:

%matplotlib inline 
import matplotlib.pyplot as plt 
fig_size[0] = 12 
fig_size[1] = 9 
plt.rcParams["figure.figsize"] = fig_size 

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

+6

plt.rcParams [「figure.figsize」] = [12,9] #作品 – moritzschaefer

+0

'plt.rcParams [「figure.figsize」] =(12,9)'這也適用 –