[英]Change the hover text in ggplotly geom_bar according the count
所以我正在使用 R Shiny 制作一个网络应用程序。 我想用 ggplotly 显示一个条形图,这里是输出。 我想将悬停文本更改为 Category: ... Count: ..
我像下面的代码一样尝试过,但我不知道如何称呼计数的值。 我试图调用计数,频率。 但它不起作用。 知道如何解决这个问题吗?
output$plotb <- renderPlotly({
ggplotly(ggplot(data=dataset(),aes(x=dataset()[[input$bo]],
text=paste("Category: ", dataset()[[input$bo]],
"<br>Count: ")))+
geom_bar(fill='cornflowerblue',color="black")+
labs(title=sprintf("Bar chart of %s",input$bo),
x=input$bo,y="Frequency")+
theme_light(),tooltip="text")
})
实现您想要的结果的一种选择是通过ggplot2::after_stat
,它允许您访问由 stat 计算的值,例如在geom_bar
的情况下,默认的 stats 层是stat="count"
。 不幸的是,这样做需要一些额外的工作来获取类别的标签。 为此,我在示例代码中添加了一个反应categories()
,它将输入变量转换为因子并返回因子的级别。 这样做允许通过 category categories()[x]
在after_stat
添加类别标签:
由于您没有提供数据,我使用ggplot2::mpg
作为示例数据:
library(shiny)
library(plotly)
ui <- fluidPage(
plotlyOutput("plotb")
)
server <- function(input, output, session) {
input <- list(bo = "class")
dataset <- reactive({ mpg })
categories <- reactive({ levels(factor(dataset()[[input$bo]])) })
output$plotb <- renderPlotly({
ggplot(data = dataset(), aes(
x = .data[[input$bo]],
text = after_stat(paste(
"Category: ", categories()[x],
"<br>Count: ", count
))
)) +
geom_bar(fill = "cornflowerblue", color = "black") +
labs(
title = sprintf("Bar chart of %s", input$bo),
x = input$bo, y = "Frequency"
) +
theme_light()
ggplotly(tooltip = "text")
})
}
shinyApp(ui, server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.