如何在Seaborn中叠加不同类型的图?

时间:2018-10-25 11:47:46

标签: python plot graph overlay seaborn

我正在尝试使用不同的y轴将两个图放入同一图中,并且当我使用相同类型的绘图时(例如,两个条形图或两个线形图),它可以很好地工作。使用此代码

fig, graph = plt.subplots(figsize=(75,3))
sns.lineplot(x='YearBuilt',y='SalePrice',ax=graph,data=processed_data,color='red')
graph2 = graph.twinx()
sns.lineplot(x='YearBuilt', y='AvgOverallQual',ax=graph2,data=processed_data,color='teal')

我知道了

enter image description here

但是当我尝试使用其他种类时,像这样:

fig, graph = plt.subplots(figsize=(75,3))
sns.barplot(x='YearBuilt',y='SalePrice',ax=graph,data=processed_data,color='red')
graph2 = graph.twinx()
sns.lineplot(x='YearBuilt', y='AvgOverallQual',ax=graph2,data=processed_data,color='teal')

我的图看起来像:

enter image description here

如何在Seaborn中叠加不同类型的图?

1 个答案:

答案 0 :(得分:1)

Seaborn barplot是一个分类情节。第一个小节将位于位置0,第二个小节将位于位置1,依此类推。lineplot是数字绘图;它将所有点放置在数字坐标给定的位置。

在这里,似乎根本不需要使用seaborn。由于matplotlib bar图也是数字的,因此仅在matplotlib中执行此操作即可为您提供所需的叠加层

fig, ax = plt.subplots(figsize=(75,3))
ax.bar('YearBuilt','SalePrice', data=processed_data, color='red')
ax2 = ax.twinx()
ax2.plot('YearBuilt', 'AvgOverallQual', data=processed_data, color='teal')