2015-10-13 9 views
14

Seaborn कुछ हद तक ग्राफिक्स प्रदान करता है जो वैज्ञानिक डेटा प्रतिनिधित्व के लिए बहुत रोचक हैं। इस प्रकार मैंने इन सीबर्न ग्राफिक्स का उपयोग अन्य अनुकूलित matplotlib प्लॉट्स के साथ छेड़छाड़ करना शुरू कर दिया।सीबर्न कॉन्फ़िगरेशन डिफ़ॉल्ट matplotlib

import seaborn as sb 

यह आयात विश्व स्तर पर Seaborn के लिए ग्राफिक पैरामीटर सेट करने लगता है और फिर आयात से नीचे के सभी matplotlib ग्राफिक्स Seaborn मानकों मिलता है (वे एक धूसर पृष्ठभूमि, linewithd परिवर्तन, आदि मिलती है: समस्या यह है कि एक बार मुझे क्या करना है , आदि)।

में ऐसा नहीं है an answer बताया गया हो कि matplotlib विन्यास के साथ Seaborn भूखंडों का निर्माण करने के लिए, लेकिन क्या मैं चाहता हूँ जब दोनों पुस्तकालयों का एक साथ उपयोग matplotlib कॉन्फ़िगरेशन पैरामीटर अनछुए रखना है और एक ही समय में उत्पादन करने के लिए, जब जरूरत, मूल में सक्षम हो समुद्री डाकू भूखंड।

+3

की संभावित डुप्लिकेट [मैं कैसे matplotlib चूक बदले बिना Seaborn उपयोग कर सकते हैं?] (Http://stackoverflow.com/questions/25393936/how-can -i-use-seaborn-without-changing-the-matplotlib-defaults) – mwaskom

+0

समुद्री डाकू दस्तावेज काफी अच्छा है। यह स्थापना दस्तावेज़ों की शुरुआत के करीब आ गया है: http://stanford.edu/~mwaskom/software/seaborn/installing.html?highlight=apionly#importing-seaborn –

+1

मुझे यकीन नहीं है कि यह एक सटीक डुप्लिकेट है प्रश्न: यह एक स्क्रिप्ट में गतिशील रूप से समुद्री शैवाल और matplotlib डिफ़ॉल्ट के बीच स्विच करने की आवश्यकता को भी संबोधित करता है, जो सुझाए गए डुप्लिकेट – tom

उत्तर

16

आप seaborn शैली का उपयोग करने कभी नहीं चाहते हैं, लेकिन Seaborn कार्यों में से कुछ, तो आप इस निम्न पंक्ति (documentation) का उपयोग कर Seaborn आयात कर सकते हैं करना चाहते हैं, तो:

import seaborn.apionly as sns 

आप के साथ कुछ भूखंडों का उत्पादन करना चाहते हैं seaborn शैली और कुछ बिना, एक ही स्क्रिप्ट में, आप seaborn.reset_orig फ़ंक्शन का उपयोग करके seaborn शैली को बंद कर सकते हैं।

ऐसा लगता है कि apionly आयात करना आयात पर स्वचालित रूप से reset_orig सेट करता है, इसलिए यह आपके ऊपर है जो आपके उपयोग मामले में सबसे उपयोगी है।

यहाँ matplotlib चूक और seaborn के बीच स्विच करने का एक उदाहरण है:

import matplotlib.pyplot as plt 
import matplotlib 
import numpy as np 

# a simple plot function we can reuse (taken from the seaborn tutorial) 
def sinplot(flip=1): 
    x = np.linspace(0, 14, 100) 
    for i in range(1, 7): 
     plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) 

sinplot() 

# this will have the matplotlib defaults 
plt.savefig('seaborn-off.png') 
plt.clf() 

# now import seaborn 
import seaborn as sns 

sinplot() 

# this will have the seaborn style 
plt.savefig('seaborn-on.png') 
plt.clf() 

# reset rc params to defaults 
sns.reset_orig() 

sinplot() 

# this should look the same as the first plot (seaborn-off.png) 
plt.savefig('seaborn-offagain.png') 

जो निम्नलिखित तीन भूखंडों का उत्पादन:

seaborn-off.png: seaborn-off

seaborn-on.png: seaborn-on

seaborn-offagain.png: enter image description here

+0

में शामिल नहीं है धन्यवाद, reset_orig() एक अच्छा दृष्टिकोण है लेकिन फिर भी यह मेरे मामले में बिल्कुल मूल आकृति का उत्पादन नहीं कर रहा है । मैंने दो अलग-अलग ipython नोटबुक से, एक मैटप्लोब आकृति (दो लगातार 'साजिश (xi, यी,'। ')' जहां xi और यी कुछ सौ तत्वों की सूचियां थीं) का निर्माण और सहेजा, एक सीधे मैटलप्लॉटिब का उपयोग करके और दूसरा एक समुद्री शैवाल का चित्रण करने से पहले मूल matplotlib स्थितियों में रीसेट कर रहा है। पोस्ट-सीबर्न आकृति में बिंदुओं का रंग असंतुलित matplotlib कॉन्फ़िगरेशन (जैसे कि उनके पास कुछ पारदर्शिता थी) के मुकाबले काफी तीव्र \ विपरीत था। – joaquin

+2

शायद कुछ कोड साझा करना सबसे अच्छा होगा ताकि अन्य उस समस्या को पुन: पेश कर सकें? – tom

0

के रूप में समझाया in this other question आप के साथ Seaborn आयात कर सकते हैं:

import seaborn.apionly as sns 

और matplotlib शैलियों संशोधित नहीं किया जाएगा।

1

style guide में वर्णित अनुसार आप matplotlib.style.context कार्यक्षमता का उपयोग कर सकते हैं।

#%matplotlib inline #if used in jupyter notebook 
import matplotlib.pyplot as plt 
import seaborn as sns 

# 1st plot 
with plt.style.context("seaborn-dark"): 
    fig, ax = plt.subplots() 
    ax.plot([1,2,3], label="First plot (seaborn-dark)") 

# 2nd plot 
with plt.style.context("default"): 
    fig, ax = plt.subplots() 
    ax.plot([3,2,1], label="Second plot (matplotlib default)") 

# 3rd plot 
with plt.style.context("seaborn-darkgrid"): 
    fig, ax = plt.subplots() 
    ax.plot([2,3,1], label="Third plot (seaborn-darkgrid)") 

enter image description here

0

मूल सेटिंग्स करने के लिए सभी आर सी पैरामीटर (कस्टम rc का सम्मान करता है) seaborn.reset_orig() समारोह

3

Seaborn संस्करण 0.8 (जुलाई 2017) ग्राफ शैली के रूप में द्वारा अनुमति दी है अब और पर बदल नहीं है पुनर्स्थापित आयात। ओपी इच्छा अब डिफ़ॉल्ट व्यवहार है।https://seaborn.pydata.org/whatsnew.html से:

डिफ़ॉल्ट (Seaborn) शैली नहीं रह गया है लागू किया जब Seaborn आयात किया जाता है। सेट_स्टाइल(), set_context(), और set_palette() के सेट() या एक या अधिक को स्पष्ट रूप से कॉल करना आवश्यक है। इसके अनुरूप, seaborn.apionly मॉड्यूल को बहिष्कृत कर दिया गया है।

आप plt.style.use के साथ किसी भी साजिश की शैली चुन सकते हैं()।

import matplotlib.pyplot as plt 
import seaborn as sns 

plt.style.use('seaborn')#switch to seaborn style 
#plot code 

plt.style.use('default')#switches back to matplotlib style 
#plot code 

#To see all available styles 
print(plt.style.available) 

plt.style() के बारे में अधिक here

+0

मुझे डिफ़ॉल्ट matplotlib शैली प्राप्त करने के लिए 'plt.style.use ('क्लासिक') 'करना था। –

संबंधित मुद्दे