You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly热力图Y轴日期不全、自定义配色及背景设置问题

解决Plotly热力图的三个问题:全Y轴日期、白色背景、自定义配色

1. 显示全部Y轴日期

Plotly默认会自动隐藏部分Y轴标签避免重叠,要强制显示所有日期,需在布局里设置Y轴的tickmode为'linear',同时可调整标签角度防止拥挤:

fig.update_yaxes(tickmode='linear', tickangle=0)  # tickangle可按需设为45/90等角度

2. 设置白色背景

修改布局的绘图区背景和画布背景为白色,同时可调整网格线颜色(或隐藏):

fig.update_layout(
    plot_bgcolor='white',
    paper_bgcolor='white',
    xaxis=dict(gridcolor='#eaeaea'),  # 可选浅灰色网格线,设为'white'可隐藏
    yaxis=dict(gridcolor='#eaeaea')
)

3. 自定义类别配色

使用color_continuous_scale参数传入自定义颜色列表(支持十六进制、RGB或命名颜色),如果是离散类别数据,改用color_discrete_sequence即可:

# 示例自定义连续配色
custom_colors = ['#f0f9ff', '#36cffb', '#ff70a6', '#533e85']
fig = px.imshow(df.set_index('DATE'), color_continuous_scale=custom_colors)

完整修改后代码示例

假设你的DataFrame名为df,DATE列为日期类型:

import plotly.express as px

# 将DATE设为索引,作为Y轴数据源
heatmap_data = df.set_index('DATE')

# 绘制热力图并指定自定义配色
fig = px.imshow(
    heatmap_data,
    color_continuous_scale=['#f5f5f5', '#888888', '#ff6b6b', '#4ecdc4']
)

# 强制显示全部Y轴日期
fig.update_yaxes(tickmode='linear', tickangle=0)

# 设置白色背景及网格线
fig.update_layout(
    plot_bgcolor='white',
    paper_bgcolor='white',
    xaxis=dict(gridcolor='#eaeaea'),
    yaxis=dict(gridcolor='#eaeaea'),
    height=800  # 可选:日期过多时调大图表高度避免标签重叠
)

# 可选:调整颜色条样式
fig.update_coloraxes(colorbar=dict(title='数值'))

fig.show()

内容的提问来源于stack exchange,提问作者user14269252

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:50:04