Kom*_*thi 3 r ggplot2 boxplot plotly
我试图创建ggplot和plotly与数据集的箱线图airquality,其中Month在x轴和Ozone值在y轴上。我的目标是对绘图进行注释,以便当我将鼠标悬停在离群点上时Sample,除了臭氧值之外,它还应该显示名称:
library(tidyverse)
library(plotly)
library(datasets)
data(airquality)
# add months
airquality$Month <- factor(airquality$Month,
labels = c("May", "Jun", "Jul", "Aug", "Sep"))
# add sample names
airquality$Sample <- paste0('Sample_',seq(1:nrow(airquality)))
# boxplot
p <- ggplot(airquality, aes(x = Month, y = Ozone)) +
geom_boxplot()
p <- plotly_build(p)
p
Run Code Online (Sandbox Code Playgroud)
这是创建的情节:
默认情况下,当我将鼠标悬停在每个框上时,它会显示 x 轴变量的基本摘要统计信息。但是,我还想看到的是异常值样本是什么。例如,当鼠标悬停在 May 上时,它会显示异常值,115但并未显示它实际上是Sample_30。
如何将 Sample 变量添加到离群点,以便它同时显示离群值和样本名称?
我们几乎可以这样得到:
library(ggplot2)
library(plotly)
library(datasets)
data(airquality)
# add months
airquality$Month <- factor(airquality$Month,
labels = c("May", "Jun", "Jul", "Aug", "Sep"))
# add sample names
airquality$Sample <- paste0('Sample_',seq(1:nrow(airquality)))
# boxplot
gg <- ggplot(airquality, aes(x = Month, y = Ozone)) +
geom_boxplot()
ggly <- ggplotly(gg)
# add hover info
hoverinfo <- with(airquality, paste0("sample: ", Sample, "</br></br>",
"month: ", Month, "</br>",
"ozone: ", Ozone))
ggly$x$data[[1]]$text <- hoverinfo
ggly$x$data[[1]]$hoverinfo <- c("text", "boxes")
ggly
Run Code Online (Sandbox Code Playgroud)
不幸的是,悬停对第一个箱线图不起作用......