如何提取Pandas GroupBy结果的日期和均值并用matplotlib绘图
实现方法
你计算得到的pobs是索引为date、值为对应日期pres平均值的Pandas Series对象,可以通过以下两种简单方案实现绘图:
方案1:直接调用Pandas内置绘图接口(最简)
不需要手动提取数组,直接调用Series的plot方法即可完成绘图:
import matplotlib.pyplot as plt # 直接绘制走势线 pobs.plot(figsize=(12, 6), linewidth=1) # 自定义图表样式 plt.title('每日pres平均值走势') plt.xlabel('日期') plt.ylabel('pres平均值') # 解决日期标签重叠问题 plt.xticks(rotation=45) # 自适应布局避免标签被截断 plt.tight_layout() plt.show()
方案2:手动提取数组后用原生matplotlib绘图
如果你需要单独获取两个数组做其他处理,直接取Series的索引和值属性即可:
import matplotlib.pyplot as plt # 提取日期数组、pres平均值数组 date_list = pobs.index pres_mean_list = pobs.values # 原生matplotlib绘图 plt.figure(figsize=(12, 6)) plt.plot(date_list, pres_mean_list, linewidth=1) plt.title('每日pres平均值走势') plt.xlabel('日期') plt.ylabel('pres平均值') plt.xticks(rotation=45) plt.tight_layout() plt.show()
异常处理提示
如果绘图时x轴日期显示异常,可在做分组计算前先把date列转为datetime格式:
df['date'] = pd.to_datetime(df['date'])
内容的提问来源于stack exchange,提问作者PetGriffin
相关产品推荐
相关产品推荐

