python - 如何在 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')
我得到这个
但是当我尝试使用不同的种类时,像这样:
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 中叠加不同类型的图表?
解决方案
seabornbarplot
是一个分类图。第一个条将位于位置 0,第二个位于位置 1,依此类推。 Alineplot
是数字图;它会将所有点放在数字坐标给定的位置。
在这里,似乎根本不需要使用 seaborn。由于 matplotlibbar
绘图也是数字的,因此仅在 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')
推荐阅读
- python - 无法创建文本文件 pynput
- xml - XML 命名空间中 URL 的确切用途是什么?
- css - 如何使用 CSS 和/或 Flexbox 实现动态布局?
- node.js - 如何将 socket.io 实例导出到其他 TS 模块
- java - 在这个使用 dagger2 的示例中改造如何使用 okhttp 和 gson
- c# - Oracle.ManagedDataAccess.Core - 事务范围问题
- google-cloud-storage - 如何连接插件访问以访问用户云存储
- c# - 全局挂钩 DLL 仅在 C# 主窗口处于活动状态/前台时调用 C# 回调方法
- java - java中基本平均速度公式的问题
- python - 如何访问其他函数中的函数变量值,而无需先从 python 中的函数外部调用它?