无法展示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
相关产品推荐
相关产品推荐

