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

无法展示Pandas DataFrame柱状图,仅能显示折线图求助

解决Pandas DataFrame柱状图绘制问题

嘿,我来帮你搞定这个柱状图的绘制问题!既然你已经能画出折线图,那基础的环境(Pandas、Matplotlib这些库)应该是没问题的,大概率是调用方法或者细节处理上的小问题。下面给你两种可靠的实现方式,还有可能的排查点:

方法一:用Pandas内置的plot.bar()快速绘制

Pandas的DataFrame自带的plot方法支持直接指定绘制类型为柱状图,步骤很简单:

import pandas as pd
import matplotlib.pyplot as plt

# 先确保日期列是datetime格式(如果你的数据还没转的话)
df_buy_sum['exec_date'] = pd.to_datetime(df_buy_sum['exec_date'])

# 绘制柱状图,指定x轴为日期,y轴为BUY列
df_buy_sum.plot(
    x='exec_date', 
    y='BUY', 
    kind='bar', 
    figsize=(10, 6),  # 设置图表大小
    color='steelblue'  # 可选:指定柱子颜色
)

# 添加图表标签和标题,优化显示
plt.title('Buy Amount by Execution Time', fontsize=12)
plt.xlabel('Execution Date & Time', fontsize=10)
plt.ylabel('BUY Value', fontsize=10)
# 旋转x轴标签,避免重叠
plt.xticks(rotation=45)
# 自动调整布局,防止标签被截断
plt.tight_layout()

plt.show()

方法二:用Matplotlib直接绘制,更灵活可控

如果你需要更自定义的样式,直接用Matplotlib的bar()函数会更灵活:

import pandas as pd
import matplotlib.pyplot as plt

# 同样先确保日期列是datetime类型
df_buy_sum['exec_date'] = pd.to_datetime(df_buy_sum['exec_date'])

# 创建画布和轴对象
fig, ax = plt.subplots(figsize=(10, 6))

# 绘制柱状图
ax.bar(df_buy_sum['exec_date'], df_buy_sum['BUY'], color='coral')

# 设置图表元素
ax.set_title('Buy Amount by Execution Time', fontsize=12)
ax.set_xlabel('Execution Date & Time', fontsize=10)
ax.set_ylabel('BUY Value', fontsize=10)
ax.tick_params(axis='x', rotation=45)

plt.tight_layout()
plt.show()

可能的问题排查点

如果还是画不出来,可以检查这几点:

  • 日期列数据类型:如果exec_date是字符串类型,x轴可能会显示异常,一定要转成datetime格式(上面代码里已经包含了转换步骤)
  • 库是否正确导入:确认你已经导入了matplotlib.pyplot,很多时候忘记导入会导致绘图失败
  • 方法调用错误:是不是不小心写成了plot.line()而不是plot(kind='bar')或者plot.bar()?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:34