2014-11-13 13 views
19

Tôi đang sử dụng phiên bản seaborn o.4 và matplotlib phiên bản 1.42 Tôi có biểu đồ hiển thị cả đường và điểm đánh dấu thông qua lệnh lô đơn giản ví dụ.python seaborn để đặt lại về matplotlib

plt.plot([1,5,3,8,4],'-bo'); 

Do một lỗi tiềm năng (https://github.com/mwaskom/seaborn/issues/344), sau khi sanh ở biển nhập khẩu, cùng một mã cho thấy dòng chỉ mà không cần đánh dấu.

import seaborn as sb 
plt.plot([1,5,3,8,4],'-bo'); 

Vì vậy, câu hỏi của tôi là: sau khi sanh ở biển nhập khẩu, Có cách nào để đặt lại tất cả các thông số trở về ban đầu?

Trả lời

15

Có, gọi seaborn.reset_orig.

+9

này sắp xếp của tác phẩm, nhưng âm mưu thực hiện sau khi 'seaborn' nhập 'seaborn.reset_orig()' vẫn trông khá khác với các ô được tạo trước các dòng này. Có cách nào để loại bỏ tất cả các hiệu ứng bẩm sinh, như thể nó chưa bao giờ được nhập khẩu? – user2428107

3

Để làm mới tác dụng phụ cấu hình Matplotlib của thường gặp với sanh ở biển:

import matplotlib as mpl 
import matplotlib.pyplot as plt 
import seaborn.apionly as sns 

Run này:

import importlib 
importlib.reload(mpl); importlib.reload(plt); importlib.reload(sns) 

Đối với mã python2 cũ:

import imp 
imp.reload(mpl); imp.reload(plt); imp.reload(sns) 

Lưu ý: Không điều nào sau đây khôi phục chính xác trạng thái của matplotlib:

  • sns.reset_orig()
  • sns.reset_defaults()
  • mpl.rcParams.update (mpl.rcParamsDefault)
+0

'Importlib' nhập tốt, nhưng khi tôi thử sử dụng' reload' tôi nhận được 'AttributeError: 'module' đối tượng không có thuộc tính 'reload''. Điều này chỉ có sẵn trong Python 3.x? – lanery

+0

doh, được cập nhật cho Python 2: imp nhập; imp.reload (somemodule) – JoelBondurant

0

Một cách đơn giản có thể gọi seaborn.set() chức năng, không có thông số chức năng, xem [seaborn tutorial][1].

+0

Điều này không có gì – colllin

0

Bạn có thể lưu rcParams bạn muốn, trước khi thay đổi phong cách với sanh ở biển (lưu ý rằng sanh ở biển không còn thay đổi rcParams khi nhập khẩu):

import matplotlib as mpl 

my_params = mpl.rcParams 

# apply some change to the rcparams here 

mpl.rcParams.update(my_params) 

Lưu ý rằng cả hai

mpl.rcParams.update(mpl.rcParamsOrig) 
mpl.rcParams.update(mpl.rcParamsDefault) 

khôi phục gần như tất cả rcParams vào giá trị mặc định của chúng. Vài rằng sẽ khác nhau có thể dễ dàng được xem bởi (Tôi chạy này trong Máy tính xách tay Jupyter):

# Differences between current params and `Default` 
for key in mpl.rcParamsDefault: 
    if not mpl.rcParamsDefault[key] == mpl.rcParams[key]: 
     print(key, mpl.rcParamsDefault[key], mpl.rcParams[key]) 

## backend agg module://ipykernel.pylab.backend_inline 
## figure.dpi 100.0 72.0 
## figure.edgecolor w (1, 1, 1, 0) 
## figure.facecolor w (1, 1, 1, 0) 
## figure.figsize [6.4, 4.8] [6.0, 4.0] 
## figure.subplot.bottom 0.11 0.125 

# Differences between `Default` and `Orig` 
for key in mpl.rcParamsDefault: 
    if not mpl.rcParamsDefault[key] == mpl.rcParamsOrig[key]: 
     print(key, mpl.rcParamsDefault[key], mpl.rcParamsOrig[key]) 

## backend agg Qt5Agg 
Các vấn đề liên quan