我知道如何在 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
可以通过手动更新布局将刻度更改为任何所需的值。 要显示所有日期并避免被 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()