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

为何无法修改Streamlit中Plotly图表的坐标轴及轴标题灰色?

解决Streamlit中Plotly图表坐标轴及轴标题灰色无法修改的问题

核心问题与修复点

  • 轴标题颜色未单独配置:你当前使用的color参数仅控制坐标轴线条和刻度文字的颜色,轴标题的颜色需要通过title_font_color单独设置。
  • Streamlit主题默认覆盖样式:Streamlit内置主题会自动调整Plotly图表的样式,可能冲掉你自定义的颜色设置,需要显式处理。

修改后的完整代码

import streamlit as st
import plotly.graph_objects as go
import plotly.subplots as sp

# 假设qdata为你的数据对象
fig = sp.make_subplots(specs=[[{"secondary_y": True}]])

fig.add_trace(go.Line(x=qdata.DateTime, y=qdata.a), secondary_y=False)
fig.add_trace(go.Line(x=qdata.DateTime, y=qdata.b), secondary_y=False)
fig.add_trace(go.Line(x=qdata.DateTime, y=qdata.c), secondary_y=False)
fig.add_trace(go.Line(x=qdata.DateTime, y=qdata.d), secondary_y=False)
fig.add_trace(go.Line(x=qdata.DateTime, y=qdata.e), secondary_y=True)

# 配置主Y轴:新增title_font_color控制标题颜色
fig.update_yaxes(
    color='#000000',
    title_text="<b>TEMPERATURES </b> (F)",
    title_font_color='#000000',
    range=[option_Y1Range0, option_Y1Range1],
    secondary_y=False
)
# 配置副Y轴:新增title_font_color控制标题颜色
fig.update_yaxes(
    color='#000000',
    title_text="<b>MODE</b> (0 to 5)",
    title_font_color='#000000',
    range=[option_Y2Range0, option_Y2Range1],
    secondary_y=True
)

# 配置X轴:若有X轴标题,需补充title_font_color
fig.update_xaxes(
    type='category',
    color='#000000',
    title_font_color='#000000'
)

fig.update_layout(
    width=1800,
    height=600,
    font_color='#000000',
    legend=dict(yanchor="top", orientation="h", y=0.9, xanchor="left", x=0.4),
    template='plotly_white'  # 指定Plotly模板,避免Streamlit主题干扰
) 

# 用st.plotly_chart替代st.write,可选禁用主题覆盖
st.plotly_chart(fig, use_container_width=True, theme=None)

额外说明

  • 使用st.plotly_chart时添加theme=None,会完全禁用Streamlit主题对Plotly的样式覆盖,确保自定义颜色生效。
  • 若X轴设置了标题,一定要在update_xaxes中补充title_font_color配置。

内容的提问来源于stack exchange,提问作者Janzaib M Baloch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:17