library(echarty)
library(jsonlite)
geojson <- read_json("https://echarts.apache.org/examples/data/asset/geo/HK.json")
ec.init(
title = list(
text = "Population Density of Hong Kong (2011)",
subtext = "Data from Wikipedia",
sublink = "http://zh.wikipedia.org/wiki/%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12"
),
tooltip = list(
trigger = "item",
formatter = "{b}<br/>{c} (p / km²)"
),
toolbox = list(
show = TRUE,
orient = "vertical",
left = "right",
top = "center",
feature = list(
dataView = list(readOnly = FALSE),
restore = list(),
saveAsImage = list()
)
),
visualMap = list(
min = 800,
max = 50000,
text = c("High", "Low"),
realtime = FALSE,
calculable = TRUE,
inRange = list(color = c("lightskyblue", "yellow", "orangered"))
),
series = list(
list(
name = "香港18区人口密度",
type = "map",
map = "HK",
geoJSON = geojson,
label = list(show = TRUE),
data = list(
list(name = "中西区", value = 20057.34),
list(name = "湾仔", value = 15477.48),
list(name = "东区", value = 31686.1),
list(name = "南区", value = 6992.6),
list(name = "油尖旺", value = 44045.49),
list(name = "深水埗", value = 40689.64),
list(name = "九龙城", value = 37659.78),
list(name = "黄大仙", value = 45180.97),
list(name = "观塘", value = 55204.26),
list(name = "葵青", value = 21900.9),
list(name = "荃湾", value = 4918.26),
list(name = "屯门", value = 5881.84),
list(name = "元朗", value = 4178.01),
list(name = "北区", value = 2227.92),
list(name = "大埔", value = 2180.98),
list(name = "沙田", value = 9172.94),
list(name = "西贡", value = 3368),
list(name = "离岛", value = 806.98)
),
nameMap = list(
"Central and Western" = "中西区",
"Eastern" = "东区",
"Islands" = "离岛",
"Kowloon City" = "九龙城",
"Kwai Tsing" = "葵青",
"Kwun Tong" = "观塘",
"North" = "北区",
"Sai Kung" = "西贡",
"Sha Tin" = "沙田",
"Sham Shui Po" = "深水埗",
"Southern" = "南区",
"Tai Po" = "大埔",
"Tsuen Wan" = "荃湾",
"Tuen Mun" = "屯门",
"Wan Chai" = "湾仔",
"Wong Tai Sin" = "黄大仙",
"Yau Tsim Mong" = "油尖旺",
"Yuen Long" = "元朗"
)
)
)
)
echarts4r
软件包(请参见下面的代码),并且可以创建此地图。但是,问题是绘图过程非常慢。我不确定这是否是echarts4r
软件包本身的问题,所以我仍然想尝试使用
echarty
软件包。
library(echarts4r)
library(jsonlite)
# geojson <- read_json("https://echarts.apache.org/examples/data/asset/geo/HK.json")
geojson <- read_json("./data/HK.json") #Save the json file and read it locally
df_plot <- data.frame(
section=c("Central and Western", "Eastern", "Islands", "Kowloon City", "Kwai Tsing", "Kwun Tong", "North", "Sai Kung",
"Sha Tin", "Sham Shui Po", "Southern", "Tai Po", "Tsuen Wan", "Tuen Mun", "Wan Chai", "Wong Tai Sin",
"Yau Tsim Mong", "Yuen Long"),
value=c(20057.34, 31686.1, 806.98, 37659.78, 21900.9, 55204.26, 2227.92, 3368, 9172.94, 40689.64, 6992.6,
2180.98, 4918.26, 5881.84, 15477.48, 45180.97, 44045.49, 4178.01))
df_plot %>%
e_charts(section) %>%
e_map_register("HK", geojson) %>%
e_map(value, map = "HK") %>%
e_visual_map(
value,
inRange = list(color = c("lightskyblue", "yellow", "orangered")))%>%
e_labels(show = TRUE, formatter = "{b}")
javascript echarts要求Geojson地图在中注册
echarts.registerMap('HK', geoJson);
series {type = map}是一个回声
示例尽管有SVG数据,但使用
geoJSON
。
方案是
registerMap
这在我的r控制台中运行正常,但我看不到任何性能差异
关于library(echarty)
library(jsonlite)
geojson <- read_json("https://echarts.apache.org/examples/data/asset/geo/HK.json")
p <- ec.init(
# ...... your ec list data, geoJSON property may be removed
)
p$x$registerMap <- list(list(mapName= 'HK', geoJSON= geojson))
p
版本。