是否可以将yticklabel居中于具有负值和正值的水平小节的中间?我希望各种y值的名称(存储在称为“名称”的列表中)出现在小节的中间(以x = 0为中心)。这可能吗?
演示代码:
names = [1, 2, 3]
fig, axs = plt.subplots(3,1, figsize=(12, 24))
ind = np.arange(len(names)) # the x locations for the groups
width = 0.35 # the width of the bars
axs[0].barh(ind, [3, 4, 5], width, color='red', label='demo')
axs[0].set(yticks=ind + width, yticklabels=names)
plt.show()
答案 0 :(得分:1)
你很近。您只需要使用align=center
,然后按无的方式重命名刻度标签,而无需将刻度移动0.5
。我将coef_names
替换为names
,因为前者未在您提供的代码中定义。
names = [1, 2, 3]
fig, axs = plt.subplots(3,1, figsize=(12, 24))
ind = np.arange(len(names)) # the x locations for the groups
width = 0.35 # the width of the bars
axs[0].barh(ind, [3, 4, 5], width, color='red', align='center',label='demo')
axs[0].set(yticks=ind , yticklabels=names)