我正在尝试使用不同的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')
我知道了
但是当我尝试使用其他种类时,像这样:
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')
我的图看起来像:
如何在Seaborn中叠加不同类型的图?
答案 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')