【问题标题】:matplotlib missing plotted x-values in pythonmatplotlib 在 python 中缺少绘制的 x 值
【发布时间】:2020-11-09 06:02:24
【问题描述】:

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

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

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

当前创建的绘图如下所示:

【问题讨论】:

标签: python list matplotlib variables figsize


【解决方案1】:

您可以将years 列表指定为您期望的xticks,方法是将它们传递给plt.xticksdocs。我冒昧地用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()

您的图形绘制了上述变化:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-11
    • 2014-02-26
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多