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
相关产品推荐
相关产品推荐

