0Pricing
Python Academy · 课时

导出与嵌入

保存和分享图形

导出与嵌入 是 CoddyKit 上的免费 Python Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

分享您的成果

完成的图表只有在别人能够看到时才有用。Plotly 图表可以保存为交互式 HTML、导出为静态图像,或嵌入网页和报告。

选择哪种格式,取决于受众是否需要交互性。

保存交互式 HTML

fig.write_html('chart.html') 会写入一个保留全部交互功能的独立文件。在任何浏览器中打开它,都可以进行缩放、悬停和平移,无需安装 Python。

这是分享实时可探索图表的最佳格式。

选择文件名

生成大量导出文件时,命名很重要。带时间戳且经过短横线化处理的名称可以避免冲突。这只是普通的字符串处理。

title = 'Q3 Sales Report!'
slug = ''.join(ch.lower() if ch.isalnum() else '_' for ch in title)
slug = '_'.join(p for p in slug.split('_') if p)
print(slug + '.html')

静态图像导出

对于 PDF、幻灯片或电子邮件,您需要静态图像。fig.write_image('chart.png') 可以生成 PNG、JPEG、SVG 或 PDF。这要求安装 kaleido 引擎。

静态图像会失去交互性,但可以嵌入到任何位置。

选择格式

根据用途匹配格式:

  • HTML 实时探索、网页
  • PNG/JPEG 光栅图,适合幻灯片和电子邮件
  • SVG 矢量图,打印时放大不会模糊
  • PDF 文档

使用一个小型决策表可以快速做出选择。

use_case = 'print'
format_map = {'web': 'html', 'slides': 'png', 'print': 'svg', 'document': 'pdf'}
print('Best format for', use_case, '->', format_map[use_case])

嵌入网页

如果要嵌入现有网站而不生成完整的 HTML 文件,请使用 fig.to_html(full_html=False, include_plotlyjs='cdn')。它只会返回图表的 HTML 片段,您可以将其粘贴到模板中。

从 CDN 加载 plotly.js 可以减小页面体积。

引入库

交互式 HTML 需要 plotly.js 库。include_plotlyjs 的选项如下:

  • True 将其打包(体积较大,但可离线使用)
  • 'cdn' 链接到 CDN(体积较小,但需要互联网)
  • False 假定页面已经加载该库

请根据离线需求和页面体积进行选择。

导出分辨率

对于静态图像,可以使用 width、height 和 scale 控制尺寸和清晰度。scale=2 会使像素密度翻倍,从而在高分辨率屏幕上生成清晰的图像。

width, height, scale = 800, 600, 2
print('Output pixels:', width * scale, 'x', height * scale)

JSON 往返转换

可以使用 fig.to_json() 将图表序列化,并使用 plotly.io.from_json() 将其重建。这对于缓存图表,或在服务器与浏览器之间传输图表很有帮助。

JSON 完整描述了数据和布局。

可复现性

分享导出文件时,也要保留生成它的脚本。PNG 无法重新编辑,但代码可以使用新数据重新生成图表。应将代码而不是图像视为可信的来源。

嵌入笔记本和 Markdown

在 Jupyter 中,如果图形是单元格中的最后一个表达式,它会自动以内嵌方式显示。对于静态文档,请导出图像并从 Markdown 中引用它。对于实时文档,则应嵌入 HTML 片段。

如果读者能从探索中受益,请选择交互式 HTML;如果读者只需要查看,则选择静态图像。

快速检查

测试您对导出的掌握程度。

回顾

您学会了共享图形:

  • write_html 用于交互式独立文件
  • write_image(搭配 kaleido)用于 PNG/SVG/PDF
  • to_html(full_html=False) 用于嵌入片段,include_plotlyjs 用于控制库
  • 使用 scale 生成高分辨率图像,并保留源代码以确保可复现性

常见问题解答

「导出与嵌入」课时是免费的吗?

是的 — 「导出与嵌入」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「导出与嵌入」这节课中我会学到什么?

保存和分享图形 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「导出与嵌入」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Plotly Express 基础
  2. 交互功能
  3. 仪表板概念
  4. 导出与嵌入
← 返回 Python Academy