【问题标题】:R - How to Plot Multiple Density Plots With ggvisR - 如何使用 ggvis 绘制多个密度图
【发布时间】:2016-01-16 13:56:41
【问题描述】:

如何在同一组轴上绘制多个密度图?我了解如何将多个折线图和散点图绘制在一起,但是让密度图共享一个共同的 x 轴的问题让我很吃惊。我的数据目前是这样设置的:

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

感谢您的帮助!

编辑:以下是我遗漏的一些细节,可能有助于使我的问题更清楚。

我有一个数据框attr_gains,与上面的示例类似,其变量名称为StrAgiInt。到目前为止,我已经能够单独使用以下代码获得Str 变量的密度图:

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

我想做的是再叠加两个密度图,一个用于AgiInt,这样我在同一组轴上就有了三个密度图。

【问题讨论】:

  • 感谢您的链接。这些方法似乎适用于 ggplot2,而我关心的是 ggvis。
  • 你已经尝试过什么?你在哪里卡住了?请提供一个最小的可重现示例来解决您的问题。我们可以从中工作并使用它来向您展示如何回答您的问题。您可以查看this SO post,了解如何在 R 中制作一个出色的可重现示例。
  • 我将编辑 OP 并进行一些澄清;谢谢你的建议。

标签: r ggvis density-plot


【解决方案1】:

直接来自文档:

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

Link

你的情况:

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 颜色的信息,请参阅this SE page


看起来像这样:

【讨论】:

  • 谢谢!我没想过使用'reshape2',我试图用ggvis来做到这一点。我用 reshape2 试过了,它奏效了,感谢您的帮助。由于我很难找到有关使用 ggvis 堆叠多个密度图的信息,您知道我将如何指定每个密度图的颜色吗?或者你知道我可以用来解决这个问题的资源吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多