मैं Seaborn का उपयोग कर सांख्यिकीय सीखने के लिए पुस्तक परिचय से निम्नलिखित साजिश पुन: बनाने के लिए प्रयास कर रहा हूँ एक आकृति में कई अलग अलग भूखंडों साजिश Seaborn
मैं विशेष रूप से इस Seaborn के lmplot
का उपयोग कर पहले दो भूखंडों बनाने के लिए पुन: बनाने के लिए चाहते हैं और दूसरा बनाने के लिए boxplot
। मुख्य समस्या यह है कि lmplot के अनुसार facetgrid
बनाता है जो मुझे बॉक्सप्लॉट के लिए हैकली रूप से एक और matplotlib axes जोड़ने के लिए मजबूर करता है। मैं सोच रहा था कि क्या इसे हासिल करने का एक आसान तरीका था। नीचे, मुझे वांछित साजिश प्राप्त करने के लिए मैन्युअल हेरफेर का थोड़ा सा करना है।
seaborn_grid = sns.lmplot('value', 'wage', col='variable', hue='education', data=df_melt, sharex=False)
seaborn_grid.fig.set_figwidth(8)
left, bottom, width, height = seaborn_grid.fig.axes[0]._position.bounds
left2, bottom2, width2, height2 = seaborn_grid.fig.axes[1]._position.bounds
left_diff = left2 - left
seaborn_grid.fig.add_axes((left2 + left_diff, bottom, width, height))
sns.boxplot('education', 'wage', data=df_wage, ax = seaborn_grid.fig.axes[2])
ax2 = seaborn_grid.fig.axes[2]
ax2.set_yticklabels([])
ax2.set_xticklabels(ax2.get_xmajorticklabels(), rotation=30)
ax2.set_ylabel('')
ax2.set_xlabel('');
leg = seaborn_grid.fig.legends[0]
leg.set_bbox_to_anchor([0, .1, 1.5,1])
नमूना डेटा पैदावार:
df_melt = {'education': {0: '1. < HS Grad',
1: '4. College Grad',
2: '3. Some College',
3: '4. College Grad',
4: '2. HS Grad'},
'value': {0: 18, 1: 24, 2: 45, 3: 43, 4: 50},
'variable': {0: 'age', 1: 'age', 2: 'age', 3: 'age', 4: 'age'},
'wage': {0: 75.043154017351497,
1: 70.476019646944508,
2: 130.982177377461,
3: 154.68529299562999,
4: 75.043154017351497}}
df_wage={'education': {0: '1. < HS Grad',
1: '4. College Grad',
2: '3. Some College',
3: '4. College Grad',
4: '2. HS Grad'},
'wage': {0: 75.043154017351497,
1: 70.476019646944508,
2: 130.982177377461,
3: 154.68529299562999,
4: 75.043154017351497}}
मुझे लगता है कि आप 'उपयोग करने के लिए PairGrid' चाहते हैं। – mwaskom