Тепловая карта Seaborn xticklabels горизонтальное выравнивание не работает, когда метки сверху - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать тепловую карту Seaborn с xticklabels вверху (чтобы попытаться эмулировать таблицу Excel с условным форматированием).

Я использую следующий код:

plt.figure(figsize=[12, 6])
ax = sns.heatmap(df, vmin=1, vmax=149, cmap=cmap_RdYlGn_r, cbar=False, fmt='s')

# Each pair of columns is a rank / value. Hide the label for one of these
ticklbls = ax.get_xticklabels(which='both')
for x in ticklbls:
    x.set_ha='left' #### This has no effect
    if '[raw value]' in x.get_text():
        x.set_text('')
    elif '[rank]' in x.get_text():
        x.set_text('\n'.join(wrap(x.get_text(), 30)))
ax.set_xticklabels(ticklbls)

# Put the xticklabels at the top of the heatmap
ax.tick_params(axis='x', top=False, labeltop=True, labelbottom=False, direction='out')

Как я могу получить, чтобы xticklabels выравнивались по левому краю по каждому столбцу (а не по центру)?x.set_ha='left' в цикле my for, кажется, не имеет никакого эффекта.

Спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Во-первых, set_ha - это функция.Вам нужно вызвать с аргументом 'left'.

Вам также необходимо установить выравнивание после перемещения меток в верхнюю часть тепловой карты:

# Put the xticklabels at the top of the heatmap
ax.tick_params(axis='x', top=False, labeltop=True, labelbottom=False, direction='out')

ticklbls = ax.get_xticklabels(which='both')

for x in ticklbls:
    x.set_ha('left') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...