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

如何将Plotly交互式图表导出后在ReactMarkdown中展示?

解决方案:在ReactMarkdown中嵌入Plotly交互式图表(无需直接获取HTML文件)

针对你无法获取生成的HTML文件、需要在ReactMarkdown中展示Plotly交互式图表的问题,提供以下可行方案:

方案1:导出Plotly图表的JSON配置,前端直接渲染

绕过HTML文件,把Plotly图表的配置转为JSON字符串,让React端用Plotly的React组件渲染:

  1. Python端生成图表的JSON配置:
import plotly.graph_objects as go
import json

fig = go.Figure(data=[go.Bar(y=[2, 3, 1])])
# 将图表转为字典后序列化为JSON字符串
fig_json = json.dumps(fig.to_dict())
print(fig_json)
  1. 将输出的JSON字符串嵌入到Markdown中(比如放在代码块或直接作为组件数据)。如果负责转换的脚本支持React组件渲染,可在Markdown中调用react-plotly.js组件并传入该JSON:
<Plot data={fig_json.data} layout={fig_json.layout} />

若脚本仅支持纯Markdown,可把JSON作为代码块输出,让前端脚本读取并渲染。

方案2:生成可嵌入的Data URI iframe

把Plotly的完整HTML转为base64编码的Data URI,直接在Markdown中嵌入iframe:

  1. Python端生成Data URI格式的iframe标签:
import plotly.graph_objects as go
import base64

fig = go.Figure(data=[go.Bar(y=[2, 3, 1])])
# 生成完整HTML字符串
html_content = fig.to_html(full_html=True)
# 转为base64编码
encoded_html = base64.b64encode(html_content.encode('utf-8')).decode('utf-8')
# 输出可直接嵌入Markdown的iframe标签
print(f'<iframe src="data:text/html;base64,{encoded_html}" width="100%" height="400" frameborder="0"></iframe>')
  1. 将输出的iframe标签直接粘贴到Markdown中。只要ReactMarkdown未过滤iframe标签,就能直接展示交互式图表,无需额外托管文件。

注意事项

  • 方案1需要前端环境已引入plotly.js或react-plotly.js依赖;
  • 方案2的Data URI方式兼容性较好,多数Markdown渲染器允许嵌入此类iframe;
  • 若脚本严格过滤HTML标签,可优先尝试方案1,通过JSON传递图表配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:42:45