2014-10-01 11 views
7

पर सेट करना संभव है। क्या पंक्ति चर लेबल को बाईं ओर सेट करना संभव है (उदाहरण के लिए, दो-पंक्ति उप-प्लॉट वाई अक्ष लेबल की पहली पंक्ति के रूप में)?पायथन seaborn facetGrid: क्या Seaborn facetGrid plots का उपयोग करते समय पंक्ति श्रेणी लेबल स्थान को बाएं

उप-प्लॉट शीर्षक के हिस्से के रूप में डिफ़ॉल्ट स्थान शीर्ष पर है। दुर्भाग्य से संयुक्त पाठ कभी-कभी उस भीड़ वाले स्थान में वैध रूप से फिट होने में बहुत लंबा हो जाता है। फिर मैंने facetGrid ऑब्जेक्ट को तुरंत चालू करते समय margin_titles = True विकल्प का उपयोग करने का प्रयास किया। लेकिन इस मामले में, पंक्ति परिवर्तनीय लेबल किंवदंती के दाईं ओर बाहर है, जो चार्ट से बहुत दूर हो सकता है।

तो संभव आसान तरीके से सोचा था की मेरी दो प्रतिशत के लायक में सौंदर्य सुधार करने के लिए: पंक्ति चर लेबल

  1. ले जाएँ कथा के अंदर मार्जिन शीर्षक जब margin_titles = True और legend_out=True
  2. अनुमति दें प्रदर्शित करने के लिए वाई धुरी लेबल से पहले बाईं तरफ।
  3. अन्य विचार?

क्षमा करें, चार्ट उदाहरण जोड़ने में सक्षम होने के लिए पर्याप्त अंक जमा नहीं किए हैं।

उत्तर

2

निश्चित बात! अक्षों पर गणना करना ठीक काम करता है।

import seaborn as sns 
import matplotlib.pyplot as plt 
sns.set(style='ticks', color_codes=True) 

tips = sns.load_dataset('tips') 

g = sns.FacetGrid(tips, col='time', row='sex') 
g = g.map(plt.scatter, 'total_bill', 'tip', edgecolor='w') 

for i, axes_row in enumerate(g.axes): 
    for j, axes_col in enumerate(axes_row): 
     row, col = axes_col.get_title().split('|') 

     if i == 0: 
      axes_col.set_title(col.strip()) 
     else: 
      axes_col.set_title('') 

     if j == 0: 
      ylabel = axes_col.get_ylabel() 
      axes_col.set_ylabel(row.strip() + ' | ' + ylabel) 

plt.show() 

enter image description here

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