matplotlib 如何从坐标轴原点留空开始刻度

6 投票
1 回答
11806 浏览
提问于 2025-04-17 10:35

我想在日期上绘制一些非数字的数据,做成简单的折线图。我正在使用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 个回答

9
  • 你可以通过设置一个更低的 y 轴范围来“抬高”图表,这个操作用的是 ax.set_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()

在这里输入图片描述

撰写回答