2016-03-11 21 views
9

Tôi muốn tìm hiểu cách định cấu hình mặc định cho matplotlib bằng cách sử dụng phụ trợ nội tuyến trong sổ ghi chú jupyter. Cụ thể, tôi muốn đặt mặc định 'figure.figsize' thành [7.5, 5.0] thay vì mặc định [6.0, 4.0]. Tôi đang sử dụng máy tính xách tay jupyter 1.1 trên máy Mac có matplotlib 1.4.3.cấu hình matplotlib cho phụ trợ nội tuyến trong sổ ghi chép jupyter

Trong máy tính xách tay, sử dụng phụ trợ macosx, file matplotlibrc tôi được chứng minh là ở vị trí tiêu chuẩn, và figsize được thiết lập theo quy định tại 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] 

Tuy nhiên, khi tôi sử dụng phụ trợ nội tuyến, figsize được thiết lập khác nhau:

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] 

Trong tập tin cấu hình máy tính xách tay của tôi, ~/.jupyter/jupyter_notebook_config.py, tôi cũng đã thêm dòng

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

nhưng điều này cũng không có tác dụng. Hiện tại, tôi đang kẹt thêm dòng này vào mỗi sổ ghi chép:

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

Có cách nào để đặt mặc định cho phụ trợ nội tuyến không?

Trả lời

12

Phân tách Jupyter/IPython gây nhầm lẫn. Jupyter là phần đầu của hạt nhân, trong đó IPython là hạt nhân Python defacto. Bạn đang cố gắng thay đổi một cái gì đó liên quan đến matplotlib và điều này chỉ có ý nghĩa trong phạm vi của hạt nhân IPython. Thực hiện thay đổi đối với matplotlib trong ~/.jupyter/jupyter_notebook_config.py sẽ áp dụng cho tất cả hạt nhân có thể không có ý nghĩa (trong trường hợp chạy hạt nhân Ruby/R/Bash/etc không sử dụng matplotlib). Do đó, cài đặt c.InlineBackend.rc cần phải đi trong cài đặt cho hạt nhân IPython.

Chỉnh sửa tệp ~/.ipython/profile_default/ipython_kernel_config.py và thêm vào dưới cùng: c.InlineBackend.rc = { }.

Kể từ c.InlineBackend.rc định matplotlib cấu hình ghi đè, dict trống kể kernel IPython không ghi đè lên bất kỳ cài đặt .matplotlibrc của bạn.

Nếu tệp không tồn tại, hãy chạy ipython profile create để tạo tệp.

+1

ipython là ra đi ; người dùng đang nói về jupyter. Các tệp cấu hình và vị trí của chúng khác nhau. – Emre

+5

Tôi biết. Đây là các thiết lập cho hạt nhân ipython mà vẫn tồn tại như một hạt nhân cho jupyter. Cài đặt cho ui và jupyter của máy tính xách tay cụ thể là trong ~ /.jupyter (hoặc bất kỳ thư mục cấu hình jupyter nào) và các thiết lập cho hạt nhân ipython nằm trong thư mục cấu hình ipython. – bkanuka

+1

Tôi xin lỗi; bạn đa đung. Ai đó thực sự nên chỉnh sửa các tài liệu đó. – Emre

1

Sử dụng figsize (chiều rộng, chiều cao) trong tế bào trên và nó thay đổi chiều rộng của lô sau

+0

Bạn đang đặt câu hỏi mới? – Tunaki

1

Sử dụng Jupyter trên cửa sổ ít nhất, tôi đã có thể làm điều đó bằng một cái gì đó giống như câu trả lời venkat của, ví dụ:

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

Tôi đã làm điều này để hình vuông hình tròn, mà đã được eliptical lên đến điểm đó. Xem, bình phương vòng tròn không phải là khó. :)

0

Đối jupyter 5.x trở lên với hạt nhân IPython, bạn chỉ có thể ghi đè lên các phím đặc biệt và để lại phần còn lại bằng cách đặt những thứ như thế này, với mong muốn của bạn figsize trong ~/.ipython/profile_default/ipython_kernel_config.py của bạn:

c = get_config() 
c.InlineBackend.rc.update({"figure.figsize": (12, 10)}) 
Các vấn đề liên quan