如何使文本工具提示适合屏幕(ggplotly R)
How to fit a text tooltip in the screen (ggplotly R)
当生成带有包含长描述的工具提示的 plotly geom_point() 绘图时,包的标准是在一行中显示文本。问题是它不适合屏幕。如何以一种可以阅读的方式打破这条线?
library(tidyverse)
library(plotly)
bd <- data.frame(Freq = c(1, 2, 3),
Criticality = c("A", "B", "C"),
Status = c("alpha", "beta", "alpha"),
Plant = c(1, 2, 1),
Description = c("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"))
g <- bd %>%
ggplot(aes(x = Freq, y = Criticality)) +
geom_point(aes(shape = Status, col = Plant, text = Description)) +
geom_jitter(aes(shape = Status, col = Plant, text = Description)) +
guides(size = FALSE)
ggplotly(g, tooltip = c("Description"))
目前,我收到以下错误消息,但不会产生任何问题。
Warning: Ignoring unknown aesthetics: text
如果字符串没有空格,我会使用 Ben 建议的方法。如果有空格,可以用str_wrap()
library(tidyverse)
library(plotly)
bd <-
tibble(
Freq = c(1, 2, 3),
Criticality = c("A", "B", "C"),
Status = c("alpha", "beta", "alpha"),
Plant = c(1, 2, 1),
Description = paste(sentences[1:3], collapse = " "),
tooltip = str_wrap(Description, 30)
)
g <- bd %>%
ggplot(aes(x = Freq, y = Criticality)) +
geom_point(aes(shape = Status, col = Plant, label = tooltip)) +
geom_jitter(aes(shape = Status, col = Plant, label = tooltip)) +
guides(size = FALSE)
ggplotly(g, tooltip = c("tooltip"))
当生成带有包含长描述的工具提示的 plotly geom_point() 绘图时,包的标准是在一行中显示文本。问题是它不适合屏幕。如何以一种可以阅读的方式打破这条线?
library(tidyverse)
library(plotly)
bd <- data.frame(Freq = c(1, 2, 3),
Criticality = c("A", "B", "C"),
Status = c("alpha", "beta", "alpha"),
Plant = c(1, 2, 1),
Description = c("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"))
g <- bd %>%
ggplot(aes(x = Freq, y = Criticality)) +
geom_point(aes(shape = Status, col = Plant, text = Description)) +
geom_jitter(aes(shape = Status, col = Plant, text = Description)) +
guides(size = FALSE)
ggplotly(g, tooltip = c("Description"))
目前,我收到以下错误消息,但不会产生任何问题。
Warning: Ignoring unknown aesthetics: text
如果字符串没有空格,我会使用 Ben 建议的方法。如果有空格,可以用str_wrap()
library(tidyverse)
library(plotly)
bd <-
tibble(
Freq = c(1, 2, 3),
Criticality = c("A", "B", "C"),
Status = c("alpha", "beta", "alpha"),
Plant = c(1, 2, 1),
Description = paste(sentences[1:3], collapse = " "),
tooltip = str_wrap(Description, 30)
)
g <- bd %>%
ggplot(aes(x = Freq, y = Criticality)) +
geom_point(aes(shape = Status, col = Plant, label = tooltip)) +
geom_jitter(aes(shape = Status, col = Plant, label = tooltip)) +
guides(size = FALSE)
ggplotly(g, tooltip = c("tooltip"))