You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python创建图表展示物业类型与对应总房价的关联?

解决物业类型数量与总房价的关联图表问题

问题说明

我尝试通过计数将分类变量(物业类型)转换为数值型变量,以此计算其与各物业类型总房价的相关性,但无法制作出能体现该关联的图表。期望的图表样式能同时展示各物业类型的数量和对应总房价,直观体现两者的关联。

原代码问题点

  • 未定义num_property_type(各物业类型的计数变量)
  • 未定义total_prices_sorted就直接调用绘图方法
  • 仅绘制了总房价的柱状图,未加入物业类型数量的可视化,无法体现两者的关联关系

修正后的代码

import pandas as pd
import matplotlib.pyplot as plt

# 1. 一次性计算各物业类型的数量和总房价
property_stats = df.groupby("Type").agg(
    物业数量=("Type", "count"),
    总房价=("Price ($)", "sum")
).reset_index()

# 2. 计算数量与总房价的相关性系数
correlation = property_stats["物业数量"].corr(property_stats["总房价"])
print(f"物业类型数量与总房价的相关性系数:{correlation:.2f}")

# 3. 按总房价降序排序,提升图表可读性
property_stats_sorted = property_stats.sort_values(by="总房价", ascending=False)

# 4. 创建双轴图表,同时展示数量和总房价
fig, ax1 = plt.subplots(figsize=(10, 6))

# 柱状图:展示各物业类型总房价
color = '#1f77b4'
ax1.bar(property_stats_sorted["Type"], property_stats_sorted["总房价"], color=color)
ax1.set_xlabel("物业类型")
ax1.set_ylabel("总房价 ($)", color=color)
ax1.tick_params(axis='y', labelcolor=color)
ax1.set_title("物业类型数量与总房价的关联")

# 折线图:共享X轴,展示各物业类型数量
ax2 = ax1.twinx()
color = '#ff7f0e'
ax2.plot(property_stats_sorted["Type"], property_stats_sorted["物业数量"], color=color, marker='o', linewidth=2)
ax2.set_ylabel("物业数量", color=color)
ax2.tick_params(axis='y', labelcolor=color)

# 旋转X轴标签避免重叠
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

代码说明

  1. 用groupby.agg一次性完成分组统计,避免重复分组操作
  2. 直接计算并输出相关性系数,直观呈现两者的线性关联程度
  3. 采用双轴图表设计:柱状图展示总房价,折线图展示物业数量,可同时对比两者的变化趋势
  4. 对数据排序并调整X轴标签角度,优化图表的可读性

内容的提问来源于stack exchange,提问作者Faith Teo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:22:36