开门见山,解决方案如下
在BMap.add_schema()后加.add_coordinate_json(“BMAP.json”)
json文件需要自己创建,格式是这样的:
{
“地点1”:[经度,纬度],
“地点2”:[经度,纬度],
}
之后在add()函数中加入数据
数据格式如:[[‘地点1’, 1], [‘地点2’, 2], [‘地点n’, 6]]
这是我下面实例用到的json文件:
{
“A”:[116.403963,39.915119],
“B”:[116.433547,39.909462]
}
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.charts import BMap
from pyecharts.faker import Faker
from pyecharts.globals import BMapType, ChartType
from pyecharts.globals import GeoType
datamap = (
BMap()
.add_schema(baidu_ak=bd_ak,
center=[116.403963,39.915119],
zoom=15,
is_roam=True, #鼠标平移缩放
map_style= {"style":'googlelite'},) #对地图样式进行配置
.add_coordinate_json("test_BMAP.json")
.add(
"", #series_name="", 不使用的话会在地图上方有个小点
[['A',1],['B',1]],
# type_="effectScatter",
type_ = GeoType.EFFECT_SCATTER, #涟漪效果
label_opts=opts.LabelOpts(formatter="{a}", position="right", is_show=False), #标签位置#is_show是否显示标签,点上面的内容
#formatter为标签内容格式器{a}:系列名;{b}:数据名;{c}:数值数组也可以是回调函数
itemstyle_opts=opts.ItemStyleOpts(color="purple"),
# is_selected=True, #选中图例
).set_global_opts(
title_opts=opts.TitleOpts(
title=" ",
subtitle=" ",
pos_left="center",
title_textstyle_opts=opts.TextStyleOpts(color="#fff"), #文字样式配置
),
tooltip_opts=opts.TooltipOpts(trigger="item"), #标签配置,选中某一个点显示的框 #触发类型,item主要用于散点图
#显示提示框formatter为标签内容格式器{a}:系列名;{b}:数据名;{c}:数值数组也可以是回调函数
)
# .add_control_panel(
# copyright_control_opts=opts.BMapCopyrightTypeOpts(position=3),
# maptype_control_opts=opts.BMapTypeControlOpts(
# type_=BMapType.MAPTYPE_CONTROL_DROPDOWN
# ),
# scale_control_opts=opts.BMapScaleControlOpts(),
# overview_map_opts=opts.BMapOverviewMapControlOpts(is_open=True),
# navigation_control_opts=opts.BMapNavigationControlOpts(),
# geo_location_control_opts=opts.BMapGeoLocationControlOpts(),
# )
.render("test.html")
)
效果如下: