[英]How to make y-axis labels center-aligned in seaborn?
我在 seaborn 中生成了两个共享 y 轴的图。 我想知道如何使共享的 y 轴标签居中对齐。 我正在寻找一些想法和改进。 附上剧情。
import seaborn as sns
import matplotlib.pylab as plt
import numpy as np
import string
import random
labels = []
for i in range(10):
labels.append(''.join(random.choices(string.ascii_lowercase, k=4)))
labels.append(''.join(random.choices(string.ascii_lowercase, k=7)))
score = np.abs(np.random.randn(20))
fig, axes = plt.subplots(1,2 , figsize=(5,5 ), sharey=True )
for ii in range(2):
ti = sns.barplot(y=[j for j in range(len(score))],x=score, ax=axes[ii],
orient='h' )
ti.set_yticklabels(labels)
if ii ==0:
ti.invert_xaxis()
ti.yaxis.tick_right()
fig.tight_layout(w_pad=0, pad=1)
plt.show()
ti.set_yticklabels(labels)
具有使用ha
水平对齐的选项,使用ma
多对齐文本。 我也使用了 ha 并使用position
参数进行了调整。 它似乎是对齐的。 可能这也有助于设计和使用它以获得正确的格式。 参考这里(看其他参数)
以下是仅部分更改的更新代码片段:
for ii in range(2):
ti = sns.barplot(y=[j for j in range(len(score))],x=score, ax=axes[ii],
orient='h')
ti.set_yticklabels(labels, ha="center", position=(1.2,0)) # ha and position adjustments.
if ii ==0:
ti.invert_xaxis()
ti.yaxis.tick_right()
plt.tight_layout(w_pad=0, pad=2.5) # Some padding adjustments.
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.