Plotly:如何在箱形图上添加中线

Sup*_*p'A 5 r boxplot plotly r-plotly

我想在箱形图上添加中线的痕迹。

像这样

在此输入图像描述

到目前为止,这是我的情节:

在此输入图像描述

library(plotly)
p <- plot_ly(y = ~rnorm(50), type = "box") %>%
  add_trace(y = ~rnorm(50, 1))

p
Run Code Online (Sandbox Code Playgroud)

ves*_*and 3

只需使用 绘制散点图plot_ly(..., type='scatter', mode='lines', ...),然后使用每个箱线图绘制一个add_boxplot(...' inherit=FALSE, ...)散点图。以下是整个 的操作方法data.frame

在此输入图像描述

带有示例数据的完整代码:

library(dplyr)
library(plotly)

# data
df <- data.frame(iris) %>% select(-c('Species'))
medians <- apply(df,2,median)

# create common x-axis values for median line and boxplots
xVals <- seq(0, length(medians)-1, by=1)

# plotly median line setup
p <- plot_ly(x = xVals, y=medians, type='scatter', mode='lines', name='medians')

# add a trace per box plot
i <- 0
for(col in names(df)){
  p <- p %>% add_boxplot(y = df[[col]], inherit = FALSE, name = col)
  i <- i + 1
}

# manage layout
p <- p %>% layout(xaxis = list(range = c(min(xVals)-1, max(xVals)+1)))
p
Run Code Online (Sandbox Code Playgroud)