删除 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()
并输出:
我有一个绘图,我必须将我的数据点分成几组,所以我为这个绘图制作了定制的棍子。
例如,我必须将数据点分组为 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()
并输出: