R Plotly: не могу сделать функцию add_markers () для сопоставления позиций "ящиков" boxplot - PullRequest
1 голос
/ 16 октября 2019

Я работал с R-markdown для генерации отчетов в формате HTML. Однако, поскольку наборы данных огромны, создание коробочных диаграмм с полными данными занимает слишком много времени, что делает его невозможным. Поэтому я решил предварительно рассчитать итоговые данные и построить коробочные диаграммы из квартилей, средних, медианных и выбросов с использованием PLOTLY в R. Однако я испытываю трудности при попытке разместить выбросы в правильных положениях оси x для каждой группы коробочных диаграмм.

Ниже приведен пример кода

library(plotly)
library(data.table)

# use summary data for plotly boxplots

# Simulate data.
n <- 10e5
dt <- data.table(trait=rnorm(n),
                 year=sample(2016:2019, n, replace=TRUE),
                 line=factor(sample(letters[1:3], n, replace=TRUE)))

# calculate summary data (summary + outliers) separately
stats <- dt[, boxplot.stats(trait)[1], by=.(year, line)]
out <- dt[, boxplot.stats(trait)[4], keyby=.(year, line)]

# create and plot the BOXPLOT
plot_ly() %>%
  add_trace(data=stats, x=~year, y=~stats, color=~line, type="box") %>%
  layout(boxmode="group") %>%
  add_markers(data=out, x=~year, y=~out, color=~line) %>%
  config(displayModeBar=FALSE, showTips=FALSE)

В результате получается блокпост с группами, где выбросы располагаются в одной и той же позиции по оси X для каждого года, но не делятся для каждого из них. line-group.

Кто-нибудь знает, как заставить add_markers () размещать эти заранее вычисленные точки выброса в правильных позициях на блокпосте ???

...