pyecharts 自定义坐标(网转)
https://github.com/pyecharts/geo-region-coords
pyecharts 自定义坐标
在 pyecharts 中,Geo/Geolines 图需要定义地区坐标,由于全国地区众多且多重名,pyecharts 无法精确度较高的区域坐标。pyecharts 中提供自定义坐标的方式有 4 种:
-
(推荐) 使用
geo_cities_coords
参数,字典类型,如 {'阿城': [126.58, 45.32],}coords.txt
1 "北京": [116.407526, 39.90403], 2 "北京东城": [116.416357, 39.928353], 3 "北京东城东华门": [116.406708, 39.914219], 4 "北京东城东华门多福巷": [116.412747, 39.923014], 5 "北京东城东华门银闸": [116.406708, 39.914219], 6 "北京东城东华门东厂": [116.406708, 39.914219], 7 "北京东城东华门智德": [116.404642, 39.918634], 8 "北京东城东华门南池子": [116.40318, 39.907837], 9 "北京东城东华门黄图岗": [116.410022, 39.920854], 10 "北京东城东华门灯市口": [116.414391, 39.918751],
在 coords.txt 中查找对应关键字,复制到
geo_cities_coords
参数即可 -
(推荐) 使用
add_coordinate()
方法提供一个自定义坐标本质上
geo_cities_coords
内部就是调用add_coordinate()
方法1 add_coordinate(self, name: six.text_type, longitude: float, latitude: float): -> None 2 3 example: 4 add_coordinate("某地", 100.0, 20.0)
-
(推荐 V0.5.9+) 使用
add_coordinate_json()
方法提供一个自定义坐标 JSON 文件add_coordinate_json(self, json_file: six.text_type): -> None example: add_coordinate_json("my_coords.json") # my_coords.json { "某地": [100.0, 20.0], ... }
-
(不推荐,这种操作方式一旦 pyecharts 更新,坐标会失效) Hack pyecharts 源代码,对应文件位于
Lib/site-packages/pyecharts/datasets/city_coordinates.json
具体路径根据操作系统和 Python 环境而定。coords.json
1 [ 2 {"北京": [116.407526, 39.90403]}, 3 {"北京东城": [116.416357, 39.928353]}, 4 {"北京东城东华门": [116.406708, 39.914219]}, 5 {"北京东城东华门多福巷": [116.412747, 39.923014]}, 6 {"北京东城东华门银闸": [116.406708, 39.914219]}, 7 {"北京东城东华门东厂": [116.406708, 39.914219]}, 8 {"北京东城东华门智德": [116.404642, 39.918634]}, 9 {"北京东城东华门南池子": [116.40318, 39.907837]}, 10 {"北京东城东华门黄图岗": [116.410022, 39.920854]}, 11 {"北京东城东华门灯市口": [116.414391, 39.918751]}, 12 ... 13 ]
在 coords.json 中查找对应关键字,补充到 city_coordinates.json 文件中即可