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

技术求助:房地产数据集条形图可读性差问题(附代码及截图)

解决房地产数据集价格图表可读性问题

嗨,我看了你的代码和问题描述,图表读不了主要是这几个小问题,咱们一步步来解决:

核心问题拆解

  • 图尺寸设置时机错误:你是先绘制图表再修改plt.rcParams['figure.figsize'],这时候设置根本不会生效,得先调整尺寸再绘图
  • 选图类型不合适:price属于连续(或高基数离散)变量,直接用value_counts()做条形图,x轴的价格标签会密密麻麻挤成一团,完全没法读取
  • 代码小疏漏:sns.despine少了括号,得写成sns.despine()才会执行;还有y轴标签写错啦,你标成了longitude,但这里y轴是价格的计数,应该改成Count或者“房屋数量”

修正后的实用方案

根据你的需求(分析基于位置的房价影响因素),给你两个靠谱的改进方向:

方向1:用直方图展示价格分布(最适合连续型价格)

直方图天生就是用来展示连续变量分布的,不会出现标签拥挤的问题,还能直观看到价格的集中区间:

import matplotlib.pyplot as plt
import seaborn as sns

# 先设置图表尺寸,这一步要放在绘图之前!
plt.rcParams['figure.figsize'] = (10, 6)

# 绘制直方图,同时添加密度曲线,更清晰展示分布趋势
sns.histplot(data['price'], kde=True)
plt.title('Distribution of Housing Prices')
plt.xlabel('Price')
plt.ylabel('Count')
sns.despine()  # 别忘了加括号
plt.show()

方向2:对价格分箱后做条形图(如果需要看区间数量分布)

如果你一定要用条形图,可以把价格分成几个区间,再统计每个区间的房屋数量:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

plt.rcParams['figure.figsize'] = (10, 6)

# 把价格分成5个区间,你也可以自定义区间范围
price_bins = pd.cut(data['price'], bins=5, labels=['Low', 'Mid-Low', 'Mid', 'Mid-High', 'High'])
# 按区间排序后绘图,避免顺序混乱
price_bins.value_counts().sort_index().plot(kind='bar')

plt.title('Price Distribution by Bins')
plt.xlabel('Price Bins')
plt.ylabel('Count')
sns.despine()
plt.show()

额外建议:贴合你的核心需求

你的最终目标是分析位置(比如经度)对房价的影响,那当前的图表方向其实不对,应该直接展示房价和经度的关联,比如用散点图:

import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['figure.figsize'] = (10, 6)
sns.scatterplot(x='longitude', y='price', data=data)
plt.title('House Price vs Longitude')
plt.xlabel('Longitude')
plt.ylabel('Price')
sns.despine()
plt.show()

这样就能直观看到不同经度位置对应的房价变化趋势啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:06:03