我正在嘗試?yán)L制一個(gè)圖表,顯示使用 matplotlib (python) 和 pandas 的每月值的變化,但由于我是新手,所以我在處理它時(shí)遇到了困難。提前對(duì)格式表示歉意。這是數(shù)據(jù)框的示例: 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 這是我嘗試過(guò)的(縮短版本):import matplotlib.pyplot as plt plt.title('Monthly data over several years')plt.plot(df['Month'].to_list(), df['Value'].to_list())這將導(dǎo)致 2015 年每個(gè)月在 Y 軸上繪制的值返回到上一年的相應(yīng)月份,而不是在 2015 年 1 月至 12 月的 Y 軸上。例如,2015 年 1 月的值 920 將在 Y 軸上直接返回到 2014 年 1 月。我也嘗試過(guò): 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)這是為了將月份與相應(yīng)的年份連接起來(lái)以避免前面的問(wèn)題,但是,我最終在 df['Months'] 列中得到 NaN 值。此外,我覺(jué)得如果它確實(shí)有效的話,它會(huì)在x軸上填充過(guò)多的xticks(或標(biāo)簽??)。我想要的是一個(gè)類(lèi)似時(shí)間序列的繪圖,顯示兩年內(nèi)值的每月變化。我正在努力在圖表上整齊地構(gòu)造 xticks。否則,條形圖會(huì)更好嗎?
1 回答
慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果將“年/月”列拆分為每年的單獨(dú)系列,則會(huì)更容易
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")

添加回答
舉報(bào)
0/150
提交
取消
