首页 > 解决方案 > Plotly:如何避免使用 go.Heatmap 对 x 和 y 类别进行分组?

问题描述

嗨,我想使用 Plotly 制作热图,如下所示:

https://drive.google.com/uc?export=view&id=1594s6eo3VfxRXrS-2asrGeiFAT-08G-w

问题是 Plotly 索引 x 列。相同的列名会导致我的代码出现问题。

https://drive.google.com/uc?export=view&id=1_KqOzzoikoKHd8TMNP20T4hDfy03KD8G

我想让我的 x 轴列显示“T,G,G,G,A”,但它们目前显示为“T,G,A”。

如何让我的 x 列显示“T,G,G,G,A”?

我的代码如下:

import plotly.graph_objects as go
import numpy as np
z = np.random.rand(4,5)
y = ['A','C','G','T']
x = ['T', 'G', 'G', 'G', 'A']
fig = go.Figure(
    data = go.Heatmap(z=z, y=y,x=x)
)

fig.show()

标签: pythonplotly

解决方案


删除y=yand x=xfrom ,go.Heatmap指定tickmode,像这样:tickvalsticktext

fig.update_yaxes(tickmode = 'array',
                 tickvals = np.arange(0, len(y)),
                 ticktext= y)

你会得到:

在此处输入图像描述

完整代码:

import plotly.graph_objects as go
import numpy as np
z = np.random.rand(4,5)
y = ['A','C','G','T']
x = ['T', 'G', 'G', 'G', 'A']

fig = go.Figure(
    data = go.Heatmap(z=z)
)

fig.update_yaxes(tickmode = 'array',
                 tickvals = np.arange(0, len(y)),
                 ticktext= y)

fig.update_xaxes(tickmode = 'array',
                 tickvals = np.arange(0, len(x)),
                 ticktext= x,
                 side = 'top')

如果有任何不清楚的地方,请告诉我,我们可以详细了解。


推荐阅读