如何在matplotlib中设置刻度线距离坐标轴原点的间隔大小

6
我需要使用matplotlib将非数字数据绘制成简单的折线图并与日期对比。以下是一些示例代码。
import matplotlib.pyplot as plt

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'bo') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
plt.show()

从代码生成的图表

我想要开始刻度标签时离原点有一些间隔,这样它们看起来不会很拥挤。我应该使用Fixedlocator吗?此外,我希望图形是一条线,每个点都有标记,就像这个示例中那样。 我该如何实现呢?


1
如果你对廉价的技巧感兴趣,可以使用 plt.xticks(x,['\n' + s for s in xticks]) - wim
1个回答

9
  • 您可以使用ax.set_ylim设置较低的ylim来“提升”图形。
  • 可以通过在调用plt.plot时设置marker = 'o'参数来向图表中添加标记点:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'b-', marker = 'o') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
ax.set_ylim(0.5,max(y))
plt.show()

enter image description here


谢谢,这很好用。另外还添加了ax.set_xlim(0.5,max(x)),以留出一些空间给x轴上的刻度。 - Angela

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接