强制所有x轴值在Python中的散点图中进行比较

时间:2017-05-04 17:36:19

标签: python matplotlib

我正在使用matplotlib.pyplot绘制散点图。以下代码生成的散点图与此请求不匹配。

months = []
data = [...] #some data in list form

#skipping the 8th value since I don't want data to refer at this value
for i in [x for x in range(1, len(data) +2) if x != 8]:
    months.append(i)

fig, ax = plt.subplots()

plt.scatter(months,data)
plt.scatter([months[-1]],[data[-1]], color=['red'])

plt.title('Quantity scatterplot')
ax.set_xlabel('Months')
ax.set_ylabel('Quantities')
ax.legend(['Historical quantities','Forecasted quantity'], loc=1)

plt.show()

enter image description here

虽然我想在x轴上看到所有月份(从1到10)

1 个答案:

答案 0 :(得分:2)

强制所有1到10之间的数字在x轴上显示为勾选标签的最简单方法是使用

ax.set_xticks(range(1,11))

对于更常见的情况,如果未在前端确定轴限制,则可以使用matplotlib.ticker.MultipleLocator在整数位置获取刻度标记。

ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))

其中1是所有刻度应为其倍数的数字。