问题描述
我正在使用R echart4r.maps
包制作新西兰(NZ)地图。我设法修改了NZ地区的工具提示,但现在我正努力为地图上的标记添加单独的工具提示。我对javascript的了解非常少,因此非常感谢一些提示/帮助。
可复制的代码:
library(echarts4r)
library(shiny)
library(shinydashboard)
library(purrr)
library(dplyr)
data_by_region <- data.frame(
Name = LETTERS[1:8],Region = c("Auckland","Bay of Plenty","Canterbury","Gisborne","Hawke's Bay","Manawatu-Wanganui","Marlborough","Nelson"),long = c(167.7994,170.1401,170.4842,171.607,172.8973,173.283966,173.666664,174.0602),lat = c(-45.9028,-45.6166,-43.5883,-41.8833298,-41.7573,-41.288,-41.270634,-40.7549),Oranges = c(227,252,373,363,287,307,308,293)
)
# Remove Chatham Island for echarts4r maps
nz_file <- system.file("New_Zealand.json",package = "echarts4r.maps")
nz_json <- jsonlite::read_json(nz_file)
# get names of polygons
names <- nz_json$features %>%
map("properties") %>%
map("name") %>%
unlist()
island_index <- grep("Chatham",names)
nz_json$features[[island_index]] <- NULL
ui <- dashboardPage(
dashboardHeader(),dashboardSidebar(),dashboardBody(
fluidRow(column(6,echarts4rOutput(outputId = "myMap1")
))
)
)
server = function(input,output,session) {
output$myMap1 <- renderEcharts4r({
data_by_region$Region <- factor(data_by_region$Region)
e_common(font_family = "monospace")
map <- data_by_region %>%
e_charts(Region) %>%
e_map_register("NZ",nz_json) %>%
e_map(Oranges,map = "NZ") %>%
e_visual_map(
Oranges,top = "20%",left = "0%",inRange = list(color = c("hotpink","#3366FF","#6699FF","#66CCFF","#33CCFF")),type = "piecewise",splitList = list(
list(min = 300),list(min = 250,max = 300),list(min = 100,max = 250),list(value = 1,label = "None"),list(value = 0,label = "Top 5")
),formatter = htmlwidgets::JS("function(value,index,values){
if(index == 'Infinity'){
return ' > ' + value.toLocaleString()
}else if (value != 0){
return value.toLocaleString() + ' - ' + index.toLocaleString()
}else{
return value.toLocaleString()
}
}")) %>%
e_tooltip(formatter = htmlwidgets::JS("
function(params){
return('<strong>' + params.name +
'</strong><br />Total: ' + echarts.format.addCommas(params.value)) + ' oranges'}"))
newdata <- data_by_region %>% top_n(5)
for(i in 1:nrow(newdata)){
data <- list(value = newdata$Name[i],coord = c(newdata$long[i],newdata$lat[i]))
map <- map %>% e_mark_point(data = data,symbolSize = c(40,40),label = list(fontSize = 10,color = "black",fontWeight = "bolder"),itemStyle = list(
color = "hotpink",borderColor = "hotpink"
))
}
map
})
}
shinyApp(ui,server)
示例屏幕截图
在标记的工具提示中,我想包括以下内容:“姓氏:橙子的数量”。例如:“ 家庭A:15个橙子”。我不确定如何在标记工具提示中添加橘子的数量,因为我不知道在javascript函数中该怎么称呼。
我的尝试:
e_tooltip(formatter = htmlwidgets::JS('
function(params) {
if(params.value) {
return("Family " + params.value + " oranges")
} else {
return("");
}
}
'))
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)