Как добавить больше информации в подсказке cloude в пакетах ggiraph в R?

Я хотел бы создать облако, которое показывает информацию о точке, используя всплывающую подсказку в пакетах ggiraph. Я могу создать облако только с одной информацией (из одного столбца), но я хотел бы добавить информацию из трех столбцов. Ниже я добавил картинку, чего я хочу добиться и код. Код правильный, но на графике есть информация только из одного столбца.

Картина показывает, чего я хочу достичь

#lib.
library(ggiraph)
library(ggplot2)
library(shiny)

#create data frame
col_A=c(123,523,134,543,154)
col_B=c(100,200,300,400,500)
col_C=as.character(c("food_1", "food_2", "food_3", "food_4", "food_5"))
df=data.frame(col_A, col_B, col_C)
df$col_C <- as.character(df$col_C)


#ui.
ui <- fluidPage(    
  ggiraph::ggiraphOutput("plot1"))



#server
server <- function(input, output) {

  gg <- ggplot(data = df ,aes(x = col_A, y = col_B)) + 
geom_point_interactive(tooltip=df$col_C)
  # I would like to plot like this: geom_point_interactive(tooltip=c(df$col_A, df$col_B, df$col_C))
  # but i causes error: Aesthetics must be either length 1 or the same as the data (5): tooltip

  output$plot1 <- renderggiraph({ 
    ggiraph(code= print(gg))})
}

shinyApp(ui = ui, server = server)

1 ответ

Решение

Ты можешь использовать paste0 чтобы получить всплывающую подсказку со всеми значениями следующим образом:

df$tooltip <- c(paste0("Name = ", df$col_C, "\n Column A = ", df$col_A, "\n Column B = ", df$col_B))

Тогда вместо geom_point_interactive(tooltip=df$col_C) ты можешь использовать geom_point_interactive(tooltip=df$tooltip)

Надеюсь, поможет!

Другие вопросы по тегам