我不确定这里发生了什么,但我有两个看似相似的代码,用于生成相同格式的图形:
apple_fcount = apple_f1.groupby("Year")["Domain Category"].nunique("count")
plt.figure(1); apple_fcount.plot(figsize=(12,6))
plt.xlabel('Year')
plt.ylabel('Number of Fungicides used')
plt.title('Number of fungicides used on apples in the US')
plt.savefig('C:/Users/User/Documents/Work/Year 3/Project/Plots/Apple/apple fcount')
这个产生了我希望如何看到它的图表; y轴表示杀菌剂的数量,x轴表示各自的年份。但是,以下代码在不同的数据集上打印出可用的图形,但x轴显示年份为“1,2,3,...”而不是实际年份。
apple_yplot = apple_y1.groupby('Year')['Value'].sum()
plt.figure(3); apple_yplot.plot(figsize=(12,6))
plt.xlabel('Year')
plt.ylabel('Yield / lb per acre')
plt.title('Graph of apple yield in the US over time')
plt.savefig('C:/Users/User/Documents/Work/Year 3/Project/Plots/Apple/Yield.png')
我在代码中看到的唯一可辨别的差异是第一个计算.nunique()数据点,而第二个是年份中所有数据的.sum()。我无法想象这就是这个问题背后的原因。两个.groupby()行都以相同的格式打印,并在那里正确显示年份。
apple_fcount:
Year
1991 19
1993 19
1995 21
1997 26
1999 28
2001 27
2003 31
2005 37
2007 30
2009 35
2011 32
Name: Domain Category, dtype: int64
apple_yplot:
Year
2007 405399
2008 541180
2009 483130
2010 473150
2011 468120
2012 417710
2013 529470
2014 510700
Name: Value, dtype: float64