Для своих визуализаций я использую пакет Plotly.
Этот MWE создает матрицу 10x10 и отображает ее на тепловой карте.
import numpy as np
import pandas as pd
import plotly.graph_objects as go
vals = np.random.rand(10,10)*5
vals = np.around(vals)
tick_text = ['A','B','C','D','E']
df = pd.DataFrame(vals)
fig = go.Figure(go.Heatmap(
z=df.values,
x = df.index,
y = df.columns
))
fig.update_layout(
height=500,
width=500
)
fig.update_layout(
coloraxis_colorbar=dict(
tickmode = 'array',
tickvals = [i for i in range(5)],
ticktext = tick_text,
)
)
fig.show()
Это результат
Я пытаюсь изменить текст, отображаемый рядом с цветовой полосой. В этом случае я хочу видеть A,B,C,D,E вместо 1,2,3,4,5.
Я следовал документации и, насколько я понял, мне нужно изменить coloraxis_colorbar, но это, похоже, не работает.






Я думаю, что вам нужно update_traces() с использованием labelalias:
fig.update_traces(
colorbar_labelalias = {i: j for i, j in zip(range(5), tick_text)},
selector = {'type': 'heatmap'}
)
Вам также необходимо указать цветовую ось, на которую должна ссылаться трассировка при построении тепловой карты.
coloraxis— Устанавливает ссылку на общую цветовую ось. Ссылки на эти общие оси цвета: «coloraxis», «coloraxis2», «coloraxis3» и т. д. Настройки для этих общих цветовых осей задаются в макете в разделеlayout.coloraxis,layout.coloraxis2и т. д.
Просто добавьте эту строку, и ваш код должен работать как положено:
fig = go.Figure(go.Heatmap(
z=df.values,
x = df.index,
y = df.columns,
coloraxis='coloraxis' # <- here
))