如何在Pandas DataFrame中绘制按每月日期统计条目数的柱状图
实现按每月日期统计的柱状图(Pandas + Matplotlib)
嘿,这个需求很明确,咱们分两步就能搞定:先统计每个日期对应的条目数量,再把统计结果绘制成柱状图。下面是具体的实现步骤和代码:
1. 准备数据并统计条目数
首先,咱们先把你给出的示例数据转换成Pandas DataFrame,然后用value_counts()或者groupby()来统计每个Day_of_month出现的次数。这里推荐用value_counts()后加上sort_index(),这样能保证X轴的日期是按从小到大的顺序排列,更符合视觉习惯。
import pandas as pd import matplotlib.pyplot as plt # 创建你提供的示例DataFrame data = { 'Date': ['2017/1/16', '2016/2/16', '2018/1/16', '2015/1/17', '2013/1/18'], 'Day_of_month': [16, 16, 16, 17, 18] } df = pd.DataFrame(data) # 统计每个Day_of_month的条目数,并按日期排序 counts = df['Day_of_month'].value_counts().sort_index()
2. 绘制柱状图
接下来用Pandas自带的plot.bar()或者Matplotlib原生方法来绘制柱状图,同时设置X轴、Y轴标签和图表标题,让图表更直观:
# 用Pandas内置方法绘制柱状图 counts.plot(kind='bar', color='skyblue') # 设置图表属性 plt.xlabel('每月日期') plt.ylabel('条目数量') plt.title('各日期对应的条目数量统计') plt.xticks(rotation=0) # 让X轴标签水平显示,避免倾斜 # 显示图表 plt.show()
如果你更喜欢用Matplotlib原生写法,也可以这样实现:
plt.bar(counts.index, counts.values, color='skyblue') plt.xlabel('每月日期') plt.ylabel('条目数量') plt.title('各日期对应的条目数量统计') plt.xticks(rotation=0) plt.show()
运行上面的代码后,你就能得到一幅X轴为每月日期、Y轴为对应条目数的柱状图啦——其中16号对应的柱子高度是3,17号是1,18号是1,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user9610943
相关产品推荐
相关产品推荐

