matplotlib 在 python 中缺少绘制的 x 值

matplotlib missing plotted x-values in python

我已经搜索了多个解决方案不明确的帖子,这些帖子可能相关也可能不相关,但我尝试过但无法这样做。

我当前的绘图确实绘制出了数字,但它没有显示年份的所有值,我希望它是一个整数。

我的 matplotlib 代码是:

import matplotlib.pyplot as plt

year, value = 0, 0.0

year = [1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014, 2015, 2016]
value = [26242.5,27906.7,29192.7,30407.5,1564.9,2313.5,2989.4,3668.6,22082.6,29964.2,30481.6,35981.7,39597.6,38659.6, 34325.9,6913.5,35780.6,39111.5,37116.5,35385.5]


plt.plot(year, value)
plt.title('A - Value of apples vs Year')
plt.xlabel('Year')
plt.ylabel('Value of apples')
plt.grid(True)
plt.show()

当前创建的地块如下图所示:

您可以将 years 列表指定为您期望的 xtick,方法是将它们传递给 plt.xticks docs。我冒昧地用 rotation=45 旋转文本,否则刻度标签重叠。

虽然这不是您问题的一部分,但我会注意到 year, value = 0, 0.0 行几乎肯定没有按照您的预期进行。看起来您想要初始化将由 year 和 value 变量引用的每个列表的类型(int 和 float),但这不是必需的或不可能的。重新分配给两个列表只会覆盖您的原始分配。如果我误解了您的意图,请尽管纠正我。

import matplotlib.pyplot as plt

#year, value = 0, 0.0 -> this line is not doing anything

year = [1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014, 2015, 2016]
value = [26242.5,27906.7,29192.7,30407.5,1564.9,2313.5,2989.4,3668.6,22082.6,29964.2,30481.6,35981.7,39597.6,38659.6, 34325.9,6913.5,35780.6,39111.5,37116.5,35385.5]


plt.plot(year, value)
####
plt.xticks(year, rotation=45)
####
plt.title('A - Value of apples vs Year')
plt.xlabel('Year')
plt.ylabel('Value of apples')
plt.grid(True)
plt.show()

经过上述修改绘制的图形: