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

Python Flask嵌入Plotly图表时如何隐藏Produced with Plotly标识

Flask嵌入Plotly隐藏官方"Produced with Plotly"标识解决方案

之前配置不生效的核心原因有两个:

  • 用PlotlyJSONEncoder序列化得到的JSON对象结构为{data: 图表数据数组, layout: 布局配置对象},前端直接将整个对象作为Plotly.plot的第二个参数(该参数位置要求传入图表数据数组)传入,参数位置错位,后续config配置根本没有被正确读取。
  • 部分低版本Plotly.js的Plotly.plot方法对config参数解析存在兼容问题,官方推荐使用Plotly.newPlot方法完成渲染,兼容性更好。

以下两种方案任选其一即可生效:

方案1:修正前端渲染逻辑(无需改动后端代码)

将原有JS渲染代码替换为如下写法,注意拆分传入data和layout参数,使用标准渲染方法:

<script type="text/javascript">
  var graph = {{plotly_fig| safe}};
  Plotly.newPlot(
    'plotly-figure-id',
    graph.data, // 传入序列化后的图表数据
    graph.layout, // 传入序列化后的布局配置
    {
      displaylogo: false // 隐藏官方logo
      // 如需移除顶部工具栏其他多余按钮,可追加配置,例:
      // modeBarButtonsToRemove: ['sendDataToCloud', 'lasso2d']
    }
  );
</script>

方案2:后端绑定配置(无需调整前端参数,稳定性更高)

直接在后端生成图表对象时将配置绑定到fig上,序列化后会自动包含配置项,前端无需额外传config即可生效。在绘图函数return前新增一行配置即可:

def plot_channel_contribution(path):
    data = pd.read_excel(
        path,
        sheet_name="Pie Chart Contribution",
        index_col=0,
        encoding="latin-1",
    )
    data = data.reset_index()
    fig = px.pie(
        data, values="Total Contribution", names="Channel", title="Channel Contribution"
    )

    fig.update_layout(
        title_x=0.5,
        autosize=False,
        width=1000,
        height=600,
    )
    # 新增以下配置行,直接绑定隐藏logo的设置
    fig.config = {"displaylogo": False}
    return json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)

验证提示:如果修改后logo仍显示,先清空浏览器缓存再测试,多数情况是本地缓存的旧版JS资源未更新导致配置失效。

内容的提问来源于stack exchange,提问作者JA-pythonista

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:27:21