matplotlib在python中缺少打印的x值

matplotlib在python中缺少打印的x值,python,list,matplotlib,variables,figsize,Python,List,Matplotlib,Variables,Figsize,我搜索了多个不清楚的解决方案的帖子,可能相关,也可能不相关,尽管如此,我还是尝试了,但无法做到 我的当前绘图确实绘制了这个数字,但它没有显示一年中的所有值,我希望它是一个整数 我的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,20

我搜索了多个不清楚的解决方案的帖子,可能相关,也可能不相关,尽管如此,我还是尝试了,但无法做到

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

我的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()
创建的当前绘图如下所示:

您可以通过将
年份
列表传递到
plt.xticks
来指定您期望的xticks。我自由地使用
rotation=45
旋转文本,否则记号标签会重叠

虽然这不是你问题的一部分,但我会注意到,行
year,value=0,0.0
几乎肯定没有达到你的预期。看起来您希望初始化每个列表的类型(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()
使用上述更改绘制您的图形:


您需要设置勾号格式设置器