1

我搜索了多个帖子,其中包含可能相关或不相关的不清楚的解决方案,并且尝试过但无法这样做。

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

我的 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()

当前创建的绘图如下所示: 在此处输入图像描述

4

1 回答 1

1

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

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

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()

您的图形绘制了上述更改:

固定无花果

于 2020-07-20T04:27:24.787 回答