2014-09-19 27 views
5

में अक्षों के आकार के लिए बैकगॉउंड कलर प्लॉट का आकार सेट करें, मैं this example के अनुसार साजिश बनाने के लिए समुद्री शैवाल का उपयोग कर रहा हूं।समुद्री डाकू संयुक्त प्लॉट

import numpy as np 
import pandas as pd 
import seaborn as sns 
sns.set(style="white") 

rs = np.random.RandomState(5) 
mean = [0, 0] 
cov = [(1, .5), (.5, 1)] 
x1, x2 = rs.multivariate_normal(mean, cov, 500).T 
x1 = pd.Series(x1, name="$X_1$") 
x2 = pd.Series(x2, name="$X_2$") 

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0) 

हालांकि, जब मैं

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0, xlim=(-5,5), ylim=(-5,5)) 

करने के लिए कोड की अंतिम पंक्ति को बदलने पृष्ठभूमि रंग सही ढंग से नहीं बदलता है: enter image description here

इतना है कि यह भरता है मैं कैसे पृष्ठभूमि रंग ठीक कर सकते हैं पूरी साजिश?

+1

तो समस्या है कि यहाँ Seaborn केवल -4 के लिए बाहर और दोनों आयामों में 4 केडीई कंप्यूटिंग जाता है। इसका वास्तविक समाधान, आईएमओ, अनंत सीमाओं के लिए सबसे सुन्दर नीले (केडीई = 0) को विस्तारित नहीं करना है, बल्कि अक्ष रंग की पृष्ठभूमि छाया के उस रंग पैलेट के निम्नतम स्तर को मजबूर करना है। –

उत्तर

5

आपको इसके केडीई अनुमान को आगे बढ़ाने के लिए अंतर्निहित फ़ंक्शन (kdeplot) बताना होगा। यह cut तर्क के माध्यम से पूरा किया जाता है, जो केडीई बैंडविड्थ का एक कार्य है। यह 3 तक चूक जाता है, और यह स्पष्ट करने का कोई स्पष्ट तरीका नहीं है कि आपको इसे कैसे सेट करने की आवश्यकता है, लेकिन यह खेलना मुश्किल नहीं होना चाहिए और काम करने वाले मूल्यों को ढूंढना मुश्किल नहीं होना चाहिए। jointplot का उपयोग करते समय, आप इसे joint_kws शब्दकोश में पास करना चाहेंगे ताकि यह उचित साजिश समारोह में भेजा जा सके।

sns.jointplot(x1, x2, kind="kde", size=7, space=0, 
       joint_kws={"cut": 10}, 
       xlim=(-5,5), ylim=(-5,5)) 

देखा:

enter image description here

0

यह बहुत करीब है, लेकिन मैं रंग से काफी मेल नहीं खा सकता। यदि आपको सेमी मॉड्यूल में रंगमंच मिलती है ("ठंडा"?) तो आप सही रंग पा सकते हैं।

ax = plt.gcf().axes[0] 
ax.set_axis_bgcolor((.93,.93,1)) 

आप इस सहभागी कर रहे हैं, तो आप एक plt.draw() की जरूरत है नया रंग दिखाने के लिए होगा।

+0

वैसे, हालांकि मुझे लगता है कि 'संयुक्त प्लॉट' (मेरे उत्तर में) को कॉल करते समय इसे पूरा करने के लिए शायद बेहतर है, अगर आप उत्सुक हैं कि इस रंग को कैसे प्राप्त किया जाए तो आपको पहले फ़ंक्शन के आउटपुट को असाइन करना होगा परिवर्तनीय, इसे 'g' कहते हैं, और उसके बाद 'g.ax_joint.collections [0] .get_facecolor()'। – mwaskom

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