<ul>
<li>为了绘制数据,必须使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.stack.html" rel="nofollow noreferrer">^{<cd1>}</a>将数据帧从宽格式转换为长格式(整齐)
<ul>
<li><code>SalePrice</code>必须保持为一列,以针对自身进行绘图,并位于索引中,这可以通过使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html" rel="nofollow noreferrer">^{<cd3>}</a>并指定<code>drop=False</code>来完成</li>
</ul>
</li>
<li>使用<code>col</code>和<code>col_wrap</code>参数使用<a href="https://seaborn.pydata.org/generated/seaborn.lmplot.html" rel="nofollow noreferrer">^{<cd5>}</a>绘图,以获得2 x 3的绘图网格。
<ul>
<li>图中显示的默认值为<code>ci=95</code>(回归估计的置信区间)</李>
</ul>
</li>
</ul>
<pre class="lang-py prettyprint-override"><code>import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = {'MSSubClass': [10, 12, 11],
'LotFrontage': [23, 20, 31],
'OverallQual': [6, 2, 3],
'OverallCond': [43, 46, 13],
'YearBuilt': [8, 8, 8],
'SalePrice': [12, 19, 24]}
df = pd.DataFrame(data)
# display(df)
MSSubClass LotFrontage OverallQual OverallCond YearBuilt SalePrice
0 10 23 6 43 8 12
1 12 20 2 46 8 19
2 11 31 3 13 8 24
# set SalePrice as the index
df.set_index('SalePrice', inplace=True, drop=False)
# convert the dataframe to a long (tidy) form
dfl = df.stack().reset_index().rename(columns={'level_1': 'cats', 0: 'vals'})
# display(dfl)
SalePrice cats vals
0 12 MSSubClass 10
1 12 LotFrontage 23
2 12 OverallQual 6
3 12 OverallCond 43
4 12 YearBuilt 8
5 12 SalePrice 12
6 19 MSSubClass 12
7 19 LotFrontage 20
8 19 OverallQual 2
9 19 OverallCond 46
10 19 YearBuilt 8
11 19 SalePrice 19
12 24 MSSubClass 11
13 24 LotFrontage 31
14 24 OverallQual 3
15 24 OverallCond 13
16 24 YearBuilt 8
17 24 SalePrice 24
# plot the data
sns.lmplot(x='vals', y='SalePrice', col='cats', col_wrap=3, data=dfl, height=4)
plt.xlim(0, 50)
plt.xticks(range(0, 55, 5))
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/qyEfB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qyEfB.png" alt="enter image description here"/></a></p>