【问题标题】:Remove empty space from matplotlib bar plot从 matplotlib 条形图中删除空白区域
【发布时间】:2021-12-21 11:35:27
【问题描述】:

我将两个条形图绘制到同一个轴上,其中 x 轴包含从 0 向下的值。但是,我的数据有很大的差距(比如从 0 到 -15),并且想删除空白空间,以便轴从 0 到 -15 之间没有空格 - 显示在这张图片上:

理想情况下,我希望对所有空白都执行此操作。 plt.axis('tight')fig.tight_layout() 我都试过了,但都没有成功。

编辑:一个小例子的示例代码

keys = [0, -15, -16, -17]
values = [3, 5, 2, 1]

fig, ax = plt.subplots(ncols=1)
fig.tight_layout()

ax.bar(keys, values, 0.8, color='g', align='center')

ax.set_xticks(keys)
plt.setp(ax.xaxis.get_majorticklabels(), rotation=90 )

【问题讨论】:

    标签: python matplotlib bar-chart


    【解决方案1】:
    • 解决此问题的最简单方法是将valuesx 相对应,该范围对应于keyslen,然后更改xticklabels
    import matplotlib.pyplot as plt
    
    keys = [0, -15, -16, -17]
    values = [3, 5, 2, 1]
    
    fig, ax = plt.subplots()
    
    # create the xticks locations
    x = range(len(keys))
    
    ax.bar(x, values, 0.8, color='g', align='center')
    
    # set the ticks and labels
    ax.set_xticks(x)
    _ = ax.set_xticklabels(keys)
    

    排序

    keys = [0, -15, -16, -17]
    values = [3, 5, 2, 1]
    
    # zip, sort and unpack
    keys, values = zip(*sorted(zip(keys, values)))
    
    fig, ax = plt.subplots()
    
    # create the xticks locations
    x = range(len(keys))
    
    ax.bar(x, values, 0.8, color='g', align='center')
    
    # set the ticks and labels
    ax.set_xticks(x)
    _ = ax.set_xticklabels(keys)
    

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 2018-09-29
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 2011-07-12
      • 2023-03-15
      相关资源
      最近更新 更多