Matplotlib绘制Airbnb数据柱状图无响应不报错问题求助
问题原因分析
- 核心误区:
matplotlib.axes.Axes.bar()方法本身不具备自动按类别聚合统计的能力,它会按照输入的两个序列的长度逐行对应绘制柱子。你传入的是全量房源的neighbourhood_group和revenue列,有多少条房源记录就会生成多少个柱子,若数据集规模较大(数千条及以上),渲染海量重叠的柱子会占用极高算力,出现类似无限循环的无响应状态,且不会抛出报错。 - 额外问题:你没有提前对数据做聚合计算,相同
neighbourhood_group下的多条房源记录会被当做独立的柱子重复绘制在同一个x轴坐标位,属于无效渲染,进一步加剧了卡顿。
修正方案
先按邻域组分组计算平均收入,再传入绘图方法即可:
import pandas as pd import matplotlib.pyplot as plt # 先分组聚合计算平均收入 grouped_revenue = airbnb.groupby('neighbourhood_group', as_index=False)['revenue'].mean() # 绘图 fig,ax = plt.subplots() ax.bar(grouped_revenue['neighbourhood_group'], grouped_revenue['revenue']) # 可选:x轴标签旋转避免文字重叠 plt.xticks(rotation=45) plt.show()
内容的提问来源于stack exchange,提问作者Lokesh Varshney
相关产品推荐
相关产品推荐

