highcharter: выбросы BoxPlot не находятся в правильной точке оси x

У меня есть набор данных, который я хотел бы создать в виде прямоугольной диаграммы с выбросами в highcharter. Коробчатая диаграмма работает, но я не могу получить выбросы в правильной x-axis позиции; все они по какой-то причине сгруппированы в позиции 0. Ящичные диаграммы верны, поэтому я не уверен, почему выбросы не соответствуют ящичковой диаграмме.

Ниже мой код:

library (highcharter)

Quote <- c(12,15,16,12,14,19,13,12,17,15,14,18,22,25,29,30,14,2,5,4)
Other <- c(30,35,36,12,18,35,39,41,42,43,45,31,37,35,32,31,34,36,32,15)
Shop <- c(2,1,5,4,6,9,5,4,7,8,1,5,4,3,5,4,1,5,15,19)
PN <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)

Dat <- data.frame(Quote,Other,Shop, PN)

highchart() %>%
  hc_add_series_boxplot(Dat$Quote, Dat$PN, name = "Quote Hold Time", color = "#FF8888", pointStart = 0) %>%
  hc_add_series_boxplot(Dat$Other, Dat$PN, name = "Other Hold Time", color = "#E5A919", pointStart = 1) %>%
  hc_add_series_boxplot(Dat$Shop, Dat$PN, name = "Shop Time", color = "#51C1BC", pointStart = 2) %>%
  hc_xAxis(categories = c("Quote Hold","Other Hold","Shop Time"), labels = list(enabled = TRUE)) %>%
  hc_yAxis(labels = list(format = "{value} days"), min = 0) %>%
  hc_plotOptions(series = list(grouping = FALSE))

Ниже изображение проблемы. Все scatter (outliers) расположены в категории удержания котировок на оси абсцисс.

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


person Kevin    schedule 03.07.2018    source источник
comment
Вы добавляли ряды меньших значений как ряды разброса, где каждая точка имеет координаты x и y? Демонстрация на JS: jsfiddle.net/BlackLabel/gr5m7ykw   -  person Kamil Kulig    schedule 04.07.2018
comment
Привет, @KamilKulig, hc_add_series_boxplot добавляет выбросы автоматически, я сам не добавляю серию разброса, поэтому я не уверен, как отформатировать серию, которую я не добавлял и которая не соответствует координатам блочной диаграммы.   -  person Kevin    schedule 05.07.2018


Ответы (1)


Я понял, что это делает некоторые манипуляции с данными, поэтому все данные находятся в одной серии. Я не мог понять, как сделать выбросы того же цвета, что и прямоугольная диаграмма в заданном x-столбце, но преобразование их всех в один и тот же оттенок тоже работает.

library (highcharter)

Quote <- c(12,15,16,12,14,19,13,12,17,15,14,18,22,25,29,30,14,2,5,4)
Other <- c(30,35,36,12,18,35,39,41,42,43,45,31,37,35,32,31,34,36,32,15)
Shop <- c(2,1,5,4,6,9,5,4,7,8,1,5,4,3,5,4,1,5,15,19)
PN <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)

Dat <- data.frame(Quote,Other,Shop, PN)

Dat$QuoteType <- rep("Quote",nrow(Dat))
Dat$OtherType <- rep("Other",nrow(Dat))
Dat$ShopType <- rep("Shop",nrow(Dat))

Dat1 <- Dat[,c("Quote","QuoteType")]
colnames(Dat1) <- c("Value","Type")
Dat2 <- Dat[,c("Other","OtherType")]
colnames(Dat2) <- c("Value","Type")
Dat3 <- Dat[,c("Shop","ShopType")]
colnames(Dat3) <- c("Value","Type")

DatComb <- rbind(Dat1,Dat2,Dat3)

highchart() %>%
  hc_add_series_boxplot(DatComb$Value, DatComb$Type, colors = c("#FF8888","#E5A919","#51C1BC"), name = "Test") %>%
  hc_yAxis(labels = list(format = "{value} days"), min = 0) %>%
  hc_plotOptions(boxplot = list(colorByPoint = TRUE), scatter = list(color = c("#A6BBC8")))
person Kevin    schedule 06.07.2018