如何将Seaborn水平柱状图设置为右对齐/镜像显示
Seaborn水平柱状图右对齐(镜像显示)实现方法
要实现右对齐的水平柱状图,同时保留正常的正数刻度,可根据需求选择以下两种方案:
方案1:反转X轴(最简实现)
无需修改原始数据,仅需添加一行代码反转X轴方向,即可实现柱子从右向左生长:
import matplotlib.pyplot as plt import seaborn as sns x = ['x1', 'x2', 'x3'] y = [4, 6, 3] sns.barplot(x=y, y=x, orient='h') # 反转X轴 plt.gca().invert_xaxis() plt.show()
注意该方案的X轴刻度会按左大右小的顺序排列,如果需要保持刻度左小右大的常规顺序,可以用方案2。
方案2:数值取反+自定义刻度(保留常规刻度顺序)
通过将原始数值取反绘制,再修改刻度标签为绝对值,即可同时满足右对齐、刻度正常两个需求:
import matplotlib.pyplot as plt import seaborn as sns import numpy as np x = ['x1', 'x2', 'x3'] y = [4, 6, 3] # 数值取反后绘制,柱子默认向左延伸 sns.barplot(x=-np.array(y), y=x, orient='h') # 替换X轴刻度为绝对值,保持显示正常正数 current_ticks = plt.xticks()[0] plt.xticks(ticks=current_ticks, labels=[abs(int(val)) for val in current_ticks]) plt.show()
内容的提问来源于stack exchange,提问作者Julkar9
相关产品推荐
相关产品推荐

