График плотности в R Highcharter

Я пытаюсь построить аналогичный график плотности в highcharter R. Я новичок в highcharter, буду признателен за любое руководство.

dt <- data.frame(x=rnorm(1000),y=sample(c(0,1),size = 1000,replace = T))
library(ggplot2)
ggplot(data = dt) +
  aes(x = x,fill=factor(y)) +
  geom_density(adjust = 1,alpha=0.5) 

Мои попытки:

library(highcharter)
library(dplyr)
hcdensity(density(dt$x), area = TRUE) %>% 
  hc_add_series(density(dt$y), area = TRUE)

person Rushabh Patel    schedule 05.07.2019    source источник
comment
Можете ли вы немного подробнее описать проблемы, возникающие у вас с графиками плотности в highcharter? или каков конечный ожидаемый результат, которого вы желаете?   -  person Ben    schedule 06.07.2019
comment
Я предполагаю, что вы хотите отобразить диаграмму с областями. Оба или ваши коды (ggplot и highcharter) работают нормально. Объясните, пожалуйста, в чем проблема и чего вы хотите добиться. У вас есть конкретный вопрос?   -  person raf18seb    schedule 08.07.2019
comment
@Ben Я ожидаю аналогичный вывод с использованием Highcharter (фрагмент кода 2), который я получаю от ggplot (фрагмент кода 1).   -  person Rushabh Patel    schedule 08.07.2019


Ответы (1)


Похоже, вам нужны две кривые (y = 0 и y = 1). Просто вызовет hcdensity dt $ x, сначала для y = 0. Затем для y=1 используйте 'density' для hc_add_series. Используйте type='area' для заполнения.

hcdensity(dt$x[dt$y==0]) %>% 
  hc_add_series(density(dt$x[dt$y==1]), type='area')

Если вы хотите включить несколько кривых или более обобщенное решение, попробуйте следующее:

library(purrr)
tapply(dt$x, dt$y, density) %>%
  reduce(.f = hc_add_series, type='area', .init=highchart())

Это было полезно:

Создайте плотность highchart с более чем 2 группами

person Ben    schedule 08.07.2019