
Pyecharts地图绘制中钦州钦南区和港口数据缺失问题分析及解决
在使用Pyecharts绘制钦州地图时,代码中已包含钦南区和港口的数据,但渲染后的地图却缺失了这两个区域的点位。本文将分析问题原因并提供解决方案。
以下代码片段展示了问题代码:
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
c = (
Geo()
.add_schema(maptype="钦州", itemstyle_opts=opts.ItemStyleOpts(color="#003366", border_color="#fff"))
.add(
"",
[['灵山县', 1], ['钦南区', 2], ['钦北区', 3], ['浦北县', 4], ['港口', 5]],
type_=ChartType.EFFECT_SCATTER,
color="white",
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="钦州"))
.render("../web/map.html")
)
问题根源在于Pyecharts库内置的城市坐标数据文件(pyecharts/datasets/city_coordinates.json)可能缺少钦南区和港口的经纬度信息。因此,地图无法正确显示这两个区域。
解决方法:
需要手动补充钦南区和港口的经纬度坐标数据。您可以选择以下两种方式:
-
直接修改
city_coordinates.json文件: 找到该文件(路径可能因安装方式而异),直接编辑添加钦南区和港口的经纬度数据,格式需与文件中其他数据保持一致。 这需要您自行查找这两个区域的准确经纬度坐标。 -
自定义坐标数据: 无需修改
city_coordinates.json文件,直接在代码中提供钦南区和港口的经纬度信息。 这需要修改add()方法中的数据格式,将地区名称和数值改为地区名称、经度、纬度和数值的四元组。例如:
data = [
['灵山县', lng1, lat1, 1],
['钦南区', lng2, lat2, 2],
['钦北区', lng3, lat3, 3],
['浦北县', lng4, lat4, 4],
['港口', lng5, lat5, 5],
]
c = (
Geo()
.add_schema(maptype="钦州", itemstyle_opts=opts.ItemStyleOpts(color="#003366", border_color="#fff"))
.add("", data, type_=ChartType.EFFECT_SCATTER, color="white")
# ... rest of the code
)
请将lng1, lat1, lng2, lat2等替换为钦南区和港口的实际经纬度坐标。
通过以上方法,即可解决Pyecharts地图绘制中数据点缺失的问题,完整显示钦州所有区域。 记住,准确的经纬度数据对于地图的正确显示至关重要。










