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

在Databricks中用Lets-Plot导出地图为PNG时遇SVG尺寸未定义错误

解决Lets-Plot中geom_livemap保存为PNG时的"The SVG size is undefined"错误

问题原因

geom_livemap是交互式Web地图组件,依赖前端浏览器环境完成渲染。在Databricks后台执行代码时,该组件无法生成带有明确宽高的SVG内容,导致cairoSVG处理时触发尺寸未定义的错误。

解决方案

推荐使用静态地图图层替代交互式livemap,以下是可直接运行的修改代码:

!pip install lets-plot
from lets_plot import * 
from lets_plot.geo_data import *

# 初始化离线模式
LetsPlot.setup_html(offline=True)

# 获取内置的国家边界数据(静态地图数据源)
world_boundaries = geocode_countries().get_boundaries()

# 创建静态地图并设置尺寸
p = ggplot() + ggsize(700, 400)
p = p + geom_map(data=world_boundaries, color="white", fill="#4a5c66") + theme_minimal()

# 保存为PNG文件
ggsave(p, "static_world_map.png")

关键说明

  • 静态地图基于本地/内置地理数据生成,无需前端渲染即可输出带有明确尺寸的SVG,彻底规避尺寸未定义问题。
  • 若必须使用交互式地图,需先导出为HTML文件,再通过wkhtmltopdf等工具转换为PNG,但该方案在Databricks中需要额外配置环境,复杂度较高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:25:03