我正在嘗試繪制一個圖表,顯示使用 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")
添加回答
舉報
0/150
提交
取消