2016-03-11 63 views
9

我想了解如何使用jupyter筆記本中的內聯後端配置matplotlib的默認設置。具體來說,我想設置默認的'figure.figsize'爲[7.5,5.0],而不是默認的[6.0,4.0]。我使用matplotlib 1.4.3在Mac上使用jupyter notebook 1.1。matplotlib配置在jupyter筆記本內聯後端

在筆記本,採用MacOSX的後端,我matplotlibrc文件被證明是在標準位置,並figsize被設置爲matplotlibrc規定:

In [1]: %matplotlib 
Using matplotlib backend: MacOSX 

In [2]: mpl.matplotlib_fname() 
Out[2]: u'/Users/scott/.matplotlib/matplotlibrc' 

In [3]: matplotlib.rcParams['figure.figsize'] 
Out[3]:[7.5, 5.0] 

然而,當我使用inline後端, figsize設置不同:

In [1]: %matplotlib inline 

In [2]: mpl.matplotlib_fname() 
Out[2]: u'/Users/scott/.matplotlib/matplotlibrc' 

In [3]: matplotlib.rcParams['figure.figsize'] 
Out[3]:[6.0, 4.0] 

在我的筆記本的配置文件,〜/ .jupyter/jupyter_notebook_config.py,我還增加了行

c.InlineBackend.rc = {'figure.figsize': (7.5, 5.0) } 

但這也沒有效果。現在我堅持在每一個筆記本中加入這一行:

matplotlib.rcParams['figure.figsize']=[7.5, 5.0] 

有沒有什麼方法可以設置內聯後端的默認值?

回答

12

Jupyter/IPython拆分很混亂。 Jupyter是內核的前端,其中IPython是事實上的Python內核。您正在嘗試更改與matplotlib相關的內容,這隻在IPython內核的範圍內纔有意義。在~/.jupyter/jupyter_notebook_config.py中對matplotlib進行更改將適用於所有內核,這些內核可能沒有意義(在運行不使用matplotlib的Ruby/R/Bash /等內核的情況下)。因此,您的c.InlineBackend.rc設置需要進入IPython內核的設置。

編輯文件~/.ipython/profile_default/ipython_kernel_config.py並添加到底部:c.InlineBackend.rc = { }

由於c.InlineBackend.rc指定matplotlib配置覆蓋,空白字典告訴IPython的內核不要覆蓋任何你.matplotlibrc設置。

如果該文件不存在,請運行ipython profile create來創建它。在上部單元

+1

IPython的是走了;用戶在談論jupyter。配置文件和它們的位置是不同的。 – Emre

+5

我知道。這些是仍然作爲jupyter的內核存在的ipython內核的設置。筆記本ui和jupyter特定的東西的設置在〜/。jupyter(或任何jupyter配置目錄)和ipython內核的設置都在ipython配置目錄中。 – bkanuka

+1

我道歉;你是對的。有人真的應該編輯這些文檔。 – Emre

1

使用figsize(寬,高)和它的變化如下圖

+0

你在問新的問題嗎? – Tunaki

1

至少使用窗口Jupyter的寬度,我能做到這一點使用的東西很像Venkat擁有的答案,即:

%matplotlib inline 
import matplotlib 
matplotlib.rcParams['figure.figsize'] = (8, 8) 

我這樣做是爲了使圓形變成方形,直到那時爲止,這個圓形是相當精巧的。看,平方圓不是那麼難。 :)

0

對於jupyter 5.x及以上IPython的內核,你可以只覆蓋特定的鍵,並通過把這樣的事情離開休息,你需要的在你的~/.ipython/profile_default/ipython_kernel_config.pyfigsize

c = get_config() 
c.InlineBackend.rc.update({"figure.figsize": (12, 10)})