yihui
你的方法好使。
完整代码如下:
library(echarts4r)
city <- data.frame(
city = c('Beijing', 'Shanghai', 'Dingxi Shi', 'Taiwan', 'Hong Kong'),
freq = c(3807399, 2915865, 2147668, 1999026, 1617000),
lon = c(116.407395,
121.473701,
104.626282,
121.0105733,
114.1333),
lat = c(39.904211,
31.230416,
35.580663,
24.8050587,
22.4060834)
)
# 地图json文件从这里下载<https://datav.aliyun.com/portal/school/atlas/area_selector>
china_map <- jsonlite::read_json("data/中华人民共和国.json")
# 加上黑河与腾冲的经纬度数据
linedata <- data.frame(
source_lon = c(127.526863),
source_lat = c(50.250167),
target_lon = c(98.490692),
target_lat = c(24.943295),
source_name = c("黑河"),
target_name = c("腾冲"),
cnt = c(2147688)
)
city |>
e_charts(lon) |>
e_map_register("China2", china_map) |>
e_geo(map = "China2") |>
e_scatter(
serie = lat,
size = freq ,
bind = city,
scale_js = "function(data){ return 80*(Math.sqrt(data[2]/ 5e7) + 0.1);}",
coord_system = "geo"
) |>
e_visual_map(freq, show = FALSE, scale = e_scale) |>
e_legend(show = FALSE) |>
e_tooltip(trigger = "axis")|>
e_data(linedata)|>
e_lines(
source_lon, # 起点经度
source_lat, # 起点纬度
target_lon, # 终点经度
target_lat, # 终点纬度
source_name, # 起点城市
target_name, # 终点城市
cnt,
coord_system = "geo", # 地理坐标系
name = "线的名字",
lineStyle = list(normal = list(
curveness = 0, # 线的弯曲度
color = "red", # 线的颜色
width = 2 #线宽
))
)
效果如下:

对了,益辉会踢毽子嘛?