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

如何在柱状图中展示大于200的数据?代码标签不显示求助

问题分析与修正:CSV数据提取+柱状图X轴标签异常

问题核心

需求为从CSV文件提取数值大于200的数据并绘制柱状图,但代码运行后X轴标签无法正常显示,代码存在多处逻辑和语法问题。

代码错误点

  • 数据逻辑割裂:先用Pandas筛选出符合条件的df3,但后续绘图完全未使用该结果,转而用Numpy读取全量数据,等于筛选逻辑无效。
  • X轴标签配置错误:plt.xticks(labels, ...)的第一个参数应为刻度位置,直接传入集合转成的labels会导致刻度与柱状图位置不匹配;同时fontsize=40字号过大,必然导致标签拥挤重叠。
  • 冗余数据读取:同时用Pandas和Numpy读取同一份文件,既浪费资源又易引发数据不一致问题。

修正后的代码

直接用Pandas完成全流程,逻辑更简洁,同时解决X轴标签问题:

import pandas as pd
import matplotlib.pyplot as plt

# 读取CSV并筛选数值大于200的记录
df = pd.read_csv("monthly.csv")
filtered_df = df[df['monthly'] > 200]  # 数值列名与原代码保持一致

# 绘制柱状图
plt.figure(figsize=(10, 6))  # 设置画布大小,避免标签拥挤
plt.bar(x=filtered_df['month'], height=filtered_df['monthly'], width=0.5)

# 配置图表属性
plt.xlabel('month', fontsize=14)
plt.xticks(rotation=45, fontsize=12)  # 调整旋转角度和字号,避免重叠
plt.ylabel('Amount', fontsize=14)
plt.title('Monthly Amount > 200', fontsize=16)
plt.grid(axis='y', linestyle='--', alpha=0.7)  # 仅显示Y轴网格,提升可读性
plt.tight_layout()  # 自动调整布局,防止标签被画布截断
plt.show()

修正说明

  1. 统一数据处理逻辑:全程用Pandas完成读取、筛选、绘图,确保展示的是符合要求的数据。
  2. 修复X轴标签显示:直接使用筛选后的月份作为刻度,调整旋转角度和字号,配合plt.tight_layout()避免标签被截断。
  3. 优化图表可读性:添加Y轴标签、标题,调整网格显示方式,让图表信息更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:00:13