【问题标题】:Remove the x-axis spikes with empty labels in matplotlib删除 matplotlib 中带有空标签的 x 轴尖峰
【发布时间】:2022-01-15 08:55:06
【问题描述】:

我有一个情节,我必须将我的数据点分成几组,所以我为这个情节制作了定制的棒。

例如,我必须将数据点分组为 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 轴可能看起来像

有什么想法吗?谢谢!

【问题讨论】:

    标签: python matplotlib x-axis


    【解决方案1】:

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

    这是我的代码:

    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()
    

    然后输出:

    【讨论】:

    • 非常感谢这个作品!我应该为整个代码提供数据。我发现我其实对ax.set_xticks()背后的逻辑没有很好的理解,所以我没有正确使用它。再次感谢您!
    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2016-08-03
    • 2016-05-07
    • 2023-02-24
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多