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

Quarto Python仪表盘Plotly图表重复问题求助

Quarto仪表盘插入Plotly图表出现重复的解决方案

可能的原因及对应解决方法:

1. 避免多次修改同一图表对象的状态冲突

将update_layout和update_traces改为链式调用,减少对同一fig对象的多次修改操作,避免Quarto渲染时的状态残留:

#| title: Mediana 2019

fig1 = px.bar(
    df.sort_values(by='reddito_mediano_2019'),
    x='comune',
    y='reddito_mediano_2019',
    labels={'comune': 'Comune', 'reddito_mediano_2019': 'Reddito mediano 2019'},
    color_discrete_sequence=['#C00000']
).update_layout(
    xaxis_title='Comune',
    yaxis_title='Reddito (€)',
    xaxis=dict(showticklabels=False),
    yaxis=dict(tickformat=",.0f"),
    template='simple_white',
    height=400,
    width=1200
).update_traces(
    hovertemplate='<b>%{x}</b><br>' + 'Reddito mediano: €%{y:,.0f}'
)

2. 检查数据源是否存在重复行

图表重复可能是因为数据源中存在重复的comune记录,先验证并处理数据:

# 检查是否有重复的comune条目
print(df['comune'].duplicated().any())
# 若存在重复则去重
df = df.drop_duplicates(subset='comune', keep='first')

3. 规范Quarto代码块渲染选项

在代码块中明确渲染设置,用Quarto原生参数替代Plotly内部配置,避免双重设置导致的重复渲染:

#| title: Mediana 2019
#| echo: false
#| fig.cap: "Reddito mediano 2019 per Comune"
#| fig.width: 12
#| fig.height: 4

fig1 = px.bar(
    df.sort_values(by='reddito_mediano_2019'),
    x='comune',
    y='reddito_mediano_2019',
    labels={'comune': 'Comune', 'reddito_mediano_2019': 'Reddito mediano 2019'},
    color_discrete_sequence=['#C00000']
).update_layout(
    xaxis_title='Comune',
    yaxis_title='Reddito (€)',
    xaxis=dict(showticklabels=False),
    yaxis=dict(tickformat=",.0f"),
    template='simple_white'
).update_traces(
    hovertemplate='<b>%{x}</b><br>' + 'Reddito mediano: €%{y:,.0f}'
)
fig1

4. 重置Plotly环境模板

在代码开头添加模板重置,避免Quarto环境中残留的Plotly配置干扰:

import plotly.io as pio
pio.templates.default = "simple_white"

# 后续图表代码...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:20:08