删除 matplotlib 中带有空标签的 x 轴尖峰

Remove the x-axis spikes with empty labels in matplotlib

我有一个绘图,我必须将我的数据点分成几组,所以我为这个绘图制作了定制的棍子。

例如,我必须将数据点分组为 12 的倍数,这就是我所做的

my_xticks = []
for x_ele in range(len(all_points)):
    if x_ele % 12 == 0:
        my_xticks.append(x_ele//12 + 1)
    else:
        my_xticks.append('')

ax.set_xticks(range(len(my_xticks)))
ax.set_xticklabels(my_xticks)

绘图的 x 轴看起来像

但是,我希望删除那些带有空标签的尖峰,如红色圆圈所示

所以最终的 x 轴看起来像

有什么想法吗?谢谢!

您没有提供任何数据,所以我使用自己创建的一些数据解决了这个问题。这个想法是使用范围函数在每个刻度之间创建相同的间隙。

这是我的代码:

from matplotlib import pyplot as plt
import numpy as np

# create sample data
x = np.linspace(1, 60, 100)
y = x*x

# define the space of ticks
space = 12
# get minimum x value
min_val = int(min(x))
# get maximum x value
max_val = int(max(x))
# define our ticks
xticks = list(range(min_val, max_val, space))
# define labels for each tick
xticklabels = list(range(1, len(xticks) + 1, 1))

# create plot
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticks(xticks)
ax.set_xticklabels(xticklabels)
plt.show()

并输出: