如何在highcharter中使用images/icons作为标签? R闪亮
How to use images/icons as labels in highcharter? R shiny
我正在使用 highcharter 在闪亮的应用程序中制作条形图,但我无法在 x 轴上将图标显示为标签。目标是使用工作目录中文件中的 svg 图像。
我在下面附上了一个示例,我在以下两个链接中搜索了灵感,但我在将 JS 函数导入 R shiny - setup 时遇到了麻烦。
https://www.highcharts.com/demo/column-comparison
https://www.highcharts.com/forum/viewtopic.php?t=16609
我虽然问题出在引号前的反斜杠,但是当我在我的应用程序中显示图标时使用
tags$div(HTML("<img src = \"logoA.svg\">"))
,完美显示(logoA.svg放在www文件夹)
有什么解决办法的建议吗?
library(shiny)
library(highcharter)
library(dplyr)
## app.R ##
server <- function(input, output) {
output$plot<- renderHighchart({
Label1<- c("A","A","B","B")
Label2<- c("1","2","1","2")
Val<- runif(4,0,100)
col<-c("#d21e1e","#009beb","#ff5a1a","#009beb")
Data<-data.frame(Label1,Label2,Val,col)
highchart(type="chart") %>%
hc_add_series(data = Data,type = "column",
hcaes(x = Label1,
y = Val,
group = Label2,
color = col),
dataLabels = list(enabled = TRUE, format='{point.mean}'))%>%
hc_legend(enabled = F)%>%
hc_xAxis(type= 'category', useHTML=T, labels=list(formatter = JS("function(){
if(this.value == 'A'){
return '<img src=\"logoA.svg\"></img>';
}else if(this.value == 'B')
return '<img src=\"logoB.svg\"></img>';
}")) )
})
}
ui <- fluidPage(
tags$div(
HTML("<img src=\"logoA.svg\"></img>")
),
highchartOutput("plot")
)
shinyApp(ui = ui, server = server)
您快到了,只需将 useHTML=T
参数从 hc_xAxis
函数移动到 labels
列表:
highchart(type = "chart") %>%
hc_add_series(
data = Data,
type = "column",
hcaes(
x = Label1,
y = Val,
group = Label2,
color = col
),
dataLabels = list(enabled = TRUE, format = '{point.mean}')
) %>%
hc_legend(enabled = F) %>%
hc_xAxis(type = 'category',
labels = list(
formatter = JS(
"function(){
if(this.value == 'A'){
return '<img src=\"logoA.svg\"></img>';
}else if(this.value == 'B')
return '<img src=\"logoB.svg\"></img>';
}"
),
useHTML = T
))
我正在使用 highcharter 在闪亮的应用程序中制作条形图,但我无法在 x 轴上将图标显示为标签。目标是使用工作目录中文件中的 svg 图像。
我在下面附上了一个示例,我在以下两个链接中搜索了灵感,但我在将 JS 函数导入 R shiny - setup 时遇到了麻烦。 https://www.highcharts.com/demo/column-comparison https://www.highcharts.com/forum/viewtopic.php?t=16609
我虽然问题出在引号前的反斜杠,但是当我在我的应用程序中显示图标时使用
tags$div(HTML("<img src = \"logoA.svg\">"))
,完美显示(logoA.svg放在www文件夹)
有什么解决办法的建议吗?
library(shiny)
library(highcharter)
library(dplyr)
## app.R ##
server <- function(input, output) {
output$plot<- renderHighchart({
Label1<- c("A","A","B","B")
Label2<- c("1","2","1","2")
Val<- runif(4,0,100)
col<-c("#d21e1e","#009beb","#ff5a1a","#009beb")
Data<-data.frame(Label1,Label2,Val,col)
highchart(type="chart") %>%
hc_add_series(data = Data,type = "column",
hcaes(x = Label1,
y = Val,
group = Label2,
color = col),
dataLabels = list(enabled = TRUE, format='{point.mean}'))%>%
hc_legend(enabled = F)%>%
hc_xAxis(type= 'category', useHTML=T, labels=list(formatter = JS("function(){
if(this.value == 'A'){
return '<img src=\"logoA.svg\"></img>';
}else if(this.value == 'B')
return '<img src=\"logoB.svg\"></img>';
}")) )
})
}
ui <- fluidPage(
tags$div(
HTML("<img src=\"logoA.svg\"></img>")
),
highchartOutput("plot")
)
shinyApp(ui = ui, server = server)
您快到了,只需将 useHTML=T
参数从 hc_xAxis
函数移动到 labels
列表:
highchart(type = "chart") %>%
hc_add_series(
data = Data,
type = "column",
hcaes(
x = Label1,
y = Val,
group = Label2,
color = col
),
dataLabels = list(enabled = TRUE, format = '{point.mean}')
) %>%
hc_legend(enabled = F) %>%
hc_xAxis(type = 'category',
labels = list(
formatter = JS(
"function(){
if(this.value == 'A'){
return '<img src=\"logoA.svg\"></img>';
}else if(this.value == 'B')
return '<img src=\"logoB.svg\"></img>';
}"
),
useHTML = T
))