如何在Medium文章嵌入Holoviews生成的HTML图表?转换Plotly遇阻求助
将Holoviews图表嵌入Medium的可行方案
方案一:导出为静态图片嵌入(无交互,最简单)
如果不需要图表的交互功能,直接将Holoviews图表导出为PNG/SVG格式,上传到Medium即可。
示例代码:
import holoviews as hv hv.extension('bokeh') # 替换为你的Holoviews图表对象 your_plot = hv.Curve([(1,2), (3,4), (5,6)]) # 导出为PNG(也可替换为fmt='svg'导出矢量图) hv.save(your_plot, 'holoviews_static_plot.png', fmt='png')
方案二:解决Holoviews转Plotly的问题(保留交互)
你之前转换失败大概率是缺少依赖,按以下步骤操作即可完成转换:
- 安装必要依赖:
pip install holoviews plotly panel
- 转换并导出Plotly图表:
import holoviews as hv from panel.io.plotly import to_plotly hv.extension('bokeh') # 替换为你的Holoviews图表对象 your_plot = hv.Curve([(1,2), (3,4), (5,6)]) # 转换为Plotly对象 plotly_fig = to_plotly(your_plot) # 可选:保存为HTML或直接上传到Chart Studio plotly_fig.write_html('converted_plotly.html')
转换完成后,将Plotly图表上传到Chart Studio,获取官方嵌入代码,直接粘贴到Medium文章即可(Medium原生支持Plotly嵌入)。
方案三:导出为Bokeh组件(备选,兼容性有限)
Holoviews基于Bokeh渲染,可提取Bokeh的脚本和DOM代码尝试嵌入:
from bokeh.embed import components import holoviews as hv hv.extension('bokeh') your_plot = hv.Curve([(1,2), (3,4), (5,6)]) # 将Holoviews对象转为Bokeh对象 bokeh_obj = hv.render(your_plot) # 提取嵌入所需的脚本和div script, div = components(bokeh_obj)
将生成的script和div内容粘贴到Medium的「嵌入代码」区块,但Medium对自定义JS的支持有限,仅允许白名单平台代码,此方法成功率较低,仅作为无其他选项时的备选。
内容的提问来源于stack exchange,提问作者Vasconni
相关产品推荐
相关产品推荐

