在 Python Plotly 热图中为 rows/columns 组分配颜色

Assigning colours to groups of rows/columns in Python Plotly heatmaps

有没有办法在Python中使用plotly生成热图(例如,通过imshow)并为rows/columns的不同组分配不同的颜色?目标是生成一个类似于 clustermap 的图,可以用 seaborn 生成而没有树状图,但具有 rows/columns 的外部颜色以指示不同的组,如此处所附示例所示下面并从 seaborn's documentation 获得,其中为行分配了不同的颜色以指示 species:

lut = dict(zip(species.unique(), "rbg"))
row_colors = species.map(lut)
g = sns.clustermap(iris, row_colors=row_colors)

特别是,是否有使用 plotly.express 并从(或直接使用)pandasDataFrame 中的数据开始的解决方案?

添加颜色以区分热图上的 rows/columns 组可以使用子图实现,其中一个 row/column hetamap 用于区分组。下面显示了一个示例:

fig = make_subplots(rows=2, cols=2, column_widths=[0.9, 0.1], row_heights=[0.9, 0.1], vertical_spacing=0.02)
table = pd.pivot_table(df, index='A', columns='B', values='C', aggfunc='first')
fig.append_trace(go.Heatmap(z=table, colorscale = 'bugn', colorbar={'x' : 1.1, 'y' : 0.5}), row=1, col=1)
fig.append_trace(go.Heatmap(z=df1, colorscale='spectral', showscale=False), row=1, col=2)
fig.append_trace(go.Heatmap(z=df2, colorscale='plasma', showscale=False), row=2, col=1)
fig.update_layout(xaxis2_showticklabels=False, yaxis2_showticklabels=False,
                  xaxis3_showticklabels=False, yaxis3_showticklabels=False,
                  xaxis_side='top')
fig.show()