Python Matplotlib子批次X-Y轴上意外的浮点数

Python Matplotlib子批次X-Y轴上意外的浮点数,python,matplotlib,Python,Matplotlib,我使用Matplotlib并排绘制两个转置条形图。但是,我得到了一些意外的浮点数,它们与x-y轴上的主刻度标签重叠。这些浮点数是0.0、0.2、0.4、0.6、0.8、1.0。其中一些数字与主要刻度标签重叠。你知道如何去掉这些不需要的小浮点数:0.0,0.2,0.4,0.6,0.8,1.0吗 这是图片。我在红色框中突出显示那些不需要的浮点数。 这是代码 action_number = [5, 6, 6, 6, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10

我使用Matplotlib并排绘制两个转置条形图。但是,我得到了一些意外的浮点数,它们与x-y轴上的主刻度标签重叠。这些浮点数是0.0、0.2、0.4、0.6、0.8、1.0。其中一些数字与主要刻度标签重叠。你知道如何去掉这些不需要的小浮点数:0.0,0.2,0.4,0.6,0.8,1.0吗

这是图片。我在红色框中突出显示那些不需要的浮点数。

这是代码

action_number = [5, 6, 6, 6, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
action_list = ['DrawSword', 'Kiss', 'RideBike', 'Dribble', 'Hug', 'Dive', 
               'Cartwheel', 'Drink', 'Climb', 'Eat', 'Walk', 'FallFloor', 
               'Stand', 'Sword', 'Pick', 'SwingBaseb', 'Handstand', 'ShootBow']

def bar_plot(action_list, action_number, ax):
    y_pos = np.arange(len(action_list))

    ax.barh(y_pos, action_number, height=0.75, align='center', color='b')
    ax.set_yticks(y_pos)
    ax.set_yticklabels(action_list)

    ax.invert_yaxis()

    ax.tick_params(labelsize=12, which='both', axis='both')

    ax.yaxis.set_ticks_position('left')
    ax.xaxis.set_ticks_position('bottom')

    plt.autoscale(tight=True)
    plt.tight_layout()

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 10))
fig.subplots_adjust(wspace=0, hspace=0)
ax1 = fig.add_subplot(121)
bar_plot(action_list, action_number, ax1)
ax2 = fig.add_subplot(122)
bar_plot(action_list, action_number, ax2)
plt.savefig('action_attribute_sidebyside.pdf',bbox_inches="tight", pad_inches=0)

从matplotlib导入pyplot作为plt
随机输入
动作编号=[5,6,6,8,8,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
动作列表=[‘拔剑’、‘亲吻’、‘山脊’、‘运球’、‘拥抱’、‘跳水’,
“车轮”、“饮料”、“攀爬”、“吃饭”、“散步”、“坠落楼层”,
‘站立’、‘剑’、‘挑’、‘摇摆’、‘倒立’、‘射击弓’]
def random_color():
返回“#%06x”%random.randint(0,0xFFFFFF)
颜色=[random_color()用于行动中的x_列表]
def自动标签(水平):
对于索引,枚举中的矩形(水平):
高度=矩形。获取高度()
宽度=矩形。获取宽度()
y_值=矩形。获取y()
plt.text(宽度+高度/2,y_值,“%d”%宽度,颜色=颜色[索引])
小地块(121)
水平面=平面条形图(操作列表,操作编号,edgecolor=“k”,颜色=颜色)
自动标签(水平)
小地块(122)
水平面=平面条形图(操作列表,操作编号,edgecolor=“k”,颜色=颜色)
自动标签(水平)
plt.grid()
plt.紧_布局()
plt.show()


我建议您通过代码示例查看各种简单的图形。

需要筛选的代码太多了。您是否尝试过一点一点地删除它以找到问题出现的地方?至少,您应该能够在这里显示更小的代码块
ax1.set\u yticks(y\u pos);ax1.set\u yticklabels(action\u list)
我认为这两行代码就是这两行代码,但是每行的数据是什么样子的?非常感谢您的帮助。我已经更新了代码和图像。您正在创建两组轴。删除包含
fig.add_子批次
in的两行,它应该可以工作感谢您提出的解决方案。它非常有效!非常感谢你的帮助。我仍然不知道如何将您的解决方案合并到我的代码中。你能给我更多的提示吗?谢谢@真玉舞请看一看,我已经修改过了这太神奇了。我已经开始和分叉你的神奇代码。