Шрифт R ggvis и параметры интерактивного текста в scatter plot (hover)


Я хотел бы знать, есть ли способ изменить характеристики текста, показанного на "hover", используя ggvis.

Я создал точечную диаграмму на основе шаблона, найденного в интернете и измененного для моих нужд.

Сценарий следующий:

library(shiny)
library(ggvis)

mydata <- data
mydata$id <- 1:nrow(mydata)  # Add an id column to use ask the key


all_values <- function(x) {
  if(is.null(x)) return(NULL)
  row <- mydata[mydata$id == x$id, ]
  paste0(
        names(row), ": ", format(row), collapse = "n"
        )
}

# factor Location
mydata %>% ggvis(~a, ~b, key := ~id) %>%
  layer_points(fill = ~factor(Location)) %>%
  scale_numeric("x", trans = "log", expand=0) %>%
  scale_numeric("y", trans = "log", expand=0) %>%
  add_axis("x", title = "blabla1") %>%
  add_axis("y", title = "blabla2") %>%
  add_tooltip(all_values, "hover")

Что я хотел бы знать, это в основном, как форматировать текст, отображаемый в интерактивном режиме на диаграмме рассеяния.

В основном я хотел бы:

  1. переходим на новую строку после каждого показанного параметра (команда "n" в collapse и paste0, кажется, не работает)
  2. Как поставить жирный шрифт, например names(row)
1 2

1 ответ:

Вы должны использовать соответствующие HTML-теги в paste0():

  • для новой строки: collapse = "<br />"
  • для жирного шрифта: "<b>", names(row), "</b>:"

Так как вы не предоставили воспроизводимый пример, вот один с mtcars:

mtc <- mtcars
mtc$id <- 1:nrow(mtc)  # Add an id column to use ask the key

all_values <- function(x) {
  if(is.null(x)) return(NULL)
  row <- mtc[mtc$id == x$id, ]
  paste0("<b>", names(row), "</b>:", format(row), collapse = "<br />")
}

mtc %>% 
  ggvis(x = ~wt, y = ~mpg, key := ~id) %>%
  layer_points() %>%
  add_tooltip(all_values, "hover")

Введите описание изображения здесь