R - Как построить графики с множественной плотностью с помощью ggvis

Как можно построить несколько графиков плотности на одном и том же наборе осей? Я понимаю, как построить несколько линейных графиков и графиков рассеяния вместе, однако вопрос о том, что графики плотности имеют общую ось x, сбивает меня с толку. Мои данные в настоящее время настроены как таковые:

name  x1   x2   x3
a     123  123  123
b     123  123  123
c     123  123  123

Спасибо за помощь!

РЕДАКТИРОВАТЬ: Вот некоторые детали, которые мне не хватало, которые могут помочь прояснить мой вопрос.

У меня есть фрейм данных attr_gains, который выглядит как приведенный выше пример, а имена переменных - Str, Agi и Int. До сих пор мне удалось получить график плотности переменной Str только с помощью этого кода:

  attr_gains %>%
  ggvis(x=~Str)%>%
  layer_densities(fill :="red", stroke := "red")

Я бы хотел наложить еще два графика плотности, по одному для Agi и Int, так, чтобы у меня было три графика плотности на одном и том же наборе осей.


person ToTheClassiest    schedule 16.01.2016    source источник
comment
Вот несколько примеров: cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)   -  person ytk    schedule 16.01.2016
comment
Спасибо за ссылку. Похоже, что эти методы применимы к ggplot2, тогда как меня интересует ggvis.   -  person ToTheClassiest    schedule 16.01.2016
comment
Что вы уже пробовали? Где ты застрял? Пожалуйста, предоставьте минимальный воспроизводимый пример, чтобы ответить на ваш вопрос. Что-то, из чего мы можем работать и использовать, чтобы показать вам, как можно было бы ответить на ваш вопрос. Вы можете ознакомиться с этим сообщением SO о том, как создать отличный воспроизводимый пример на R.   -  person Eric Fail    schedule 16.01.2016
comment
Я отредактирую OP с некоторыми пояснениями; Спасибо за предложение.   -  person ToTheClassiest    schedule 16.01.2016


Ответы (1)


Напрямую из документации:

PlantGrowth %>% 
  ggvis(~weight, fill = ~group) %>% 
  group_by(group) %>%
  layer_densities()

Ссылка

Ваш случай:

set.seed(1000)
library('ggvis')
library('reshape2')

#############################################

df = data.frame(matrix(nrow = 3, ncol = 5))
colnames(df) <- c('names', 'x1', 'x2', 'x3', 'colors')

df['names'] <- c('a','b','c')    
df['x1'] <- runif(3, 100.0, 150.0)
df['x2'] <- runif(3, 100.0, 150.0)
df['x3'] <- runif(3, 100.0, 150.0)
df['colors'] <- c("blue","orange","green")

df <- melt(df)

#############################################

df %>% 
  ggvis( ~value, fill = ~colors ) %>% 
  group_by(names) %>%
  layer_densities()

Информацию об управлении цветом ggvis ( с).


Выглядит так:

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

person lnNoam    schedule 16.01.2016
comment
Спасибо! Я не думал использовать reshape2, я пытался сделать это с помощью только ggvis. Я пробовал это с reshape2, и это сработало, я ценю вашу помощь. Поскольку мне было трудно найти информацию о наложении графиков с несколькими плотностями с помощью ggvis, знаете ли вы, как я могу указать цвета каждого графика плотности? Или вы знаете какой-либо ресурс, который я мог бы использовать, чтобы это выяснить? - person ToTheClassiest; 16.01.2016