为了账号安全,请及时绑定邮箱和手机立即绑定

我想使用 matplot.pylib、pandas 绘制几年来数据集中每月值的变化

我想使用 matplot.pylib、pandas 绘制几年来数据集中每月值的变化

qq_笑_17 2023-10-25 10:34:38
我正在尝试绘制一个图表,显示使用 matplotlib (python) 和 pandas 的每月值的变化,但由于我是新手,所以我在处理它时遇到了困难。提前对格式表示歉意。这是数据框的示例:  Year    Month      Value  2014    January     510  2014    February    542  2014    March       684  2014    April       700  2014    May         732  2014    July        603  2014    August      643  2014    September   680  2014    October     723  2014    November    760  2014    December    810  2015    January     920  2015    February    900  2015    March       780  2015    April       710  2015    May         810  2015    July        895  2015    August      906  2015    September   945  2015    October     980  2015    November    1000  2015    December    1123 这是我尝试过的(缩短版本):import matplotlib.pyplot as plt    plt.title('Monthly data over several years')plt.plot(df['Month'].to_list(), df['Value'].to_list())这将导致 2015 年每个月在 Y 轴上绘制的值返回到上一年的相应月份,而不是在 2015 年 1 月至 12 月的 Y 轴上。例如,2015 年 1 月的值 920 将在 Y 轴上直接返回到 2014 年 1 月。我也尝试过:  months = {"January": 1, "February": 2, "March": 3, "April": 4, "May": 5, "June": 6, "July": 7,    "August": 8, "September": 9, "October": 10, "November": 11, "December": 12}  df{'Month'] = df.Month.map(months)  df['Date'] = df['Year'].map(str) + '-' + df['Month'].map(str)这是为了将月份与相应的年份连接起来以避免前面的问题,但是,我最终在 df['Months'] 列中得到 NaN 值。此外,我觉得如果它确实有效的话,它会在x轴上填充过多的xticks(或标签??)。我想要的是一个类似时间序列的绘图,显示两年内值的每月变化。我正在努力在图表上整齐地构造 xticks。否则,条形图会更好吗?
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

如果将“年/月”列拆分为每年的单独系列,则会更容易


import pandas as pd 

import matplotlib.pyplot as plt


fig, axes = plt.subplots(figsize=(6,4))


df = pd.read_csv("data.csv")

df2 = pd.pivot_table(df, index="Month", columns=["Year"])

df2 = df2.reindex(['January', 'February', 'March', 'April', 'May', 'July', 'August', 'September', 'October', 'November', 'December'])

df2.plot(ax=axes)

fig.savefig("plot.png")

https://img1.sycdn.imooc.com/65387edb0001656804290285.jpg

查看完整回答
反对 回复 2023-10-25
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信