在 plotly 中绘制热图时,我的 Y 轴不显示 Y 轴上的所有日期

问题描述 投票:0回答:1

我知道如何在 seaborn 中制作好的热图,但我想使用 Plotly 包。我使用了下面的代码,但是我的 Y 轴没有显示所有日期,我怎样才能在我的 y 轴上显示所有日期?

我想要背景色是白色,每个类别也有不同的自定义颜色,我应该如何修改代码?

我的数据框包括日期列和其他列,我会将它们放在 X 轴上

import plotly.express as px

fig = px.imshow(df, text_auto=True,color_continuous_scale='RdBu_r', origin='lower')


fig.show()

我想要的是:

我的数据框示例:


            a   b   c   d   e   f
DATE                        
2010-04-12  0   1   0   0   0   0

python plotly heatmap
1个回答
0
投票

可以通过手动更新布局将刻度更改为任何所需的值。 要显示所有日期并避免被 Plotly 自动压缩,您可以将日期作为字符串传递给 yaxis。

关于背景色,由色阶控制。将

color_continuous_scale
设置为
blues
可能会给你一个白色的背景。

fig = px.imshow(df.values, color_continuous_scale='blues',
                aspect='auto', width=500, height=600)
fig.update_layout(
    yaxis = dict(
        tickmode = 'array',
        tickvals = np.arange(len(df)),
        ticktext = df.index.astype(str)
    ),
    xaxis = dict(visible = False)
)
fig.show()

如果热图太长无法显示所有日期,请跳过其中一些。

fig = px.imshow(df_long.values, color_continuous_scale='blues',
                aspect='auto', width=500, height=600)
n_skip = 10
fig.update_layout(
    yaxis = dict(
        tickmode = 'array',
        tickvals = np.arange(0, len(df_long), n_skip), # skip here
        ticktext = df_long.index.astype(str)[::n_skip] # skip here
    ),
    xaxis = dict(visible = False)
)
fig.show()

© www.soinside.com 2019 - 2024. All rights reserved.