我如何使用ggplot2获得带有自由比例和条形图的facet_grid图?

时间:2015-03-25 17:48:29

标签: r plot ggplot2 bar-chart

我(重新)学习ggplot2并试图让这一点变得特别 情节,这证明是相当回避。

早些时候我找到了this question, 这很有用,但不是我需要的一切。这或多或少都是你得到的 使用Q的接受答案:

## Packages & data:
require(dplyr)
set.seed(0)
df <- data.frame(categ=c("A", "B", "C"), 
                 V1=rpois(3, 20), 
                 V2=rnorm(3, 100, 40), 
                 V2=runif(3)) %>% gather(Var, X, 2:4)
## Se below in "Example data" for how to get this example

p  <- ggplot(df, aes(categ, X, color=Var)) + geom_point()
p + facet_grid(Var ~ ., scale="free")

结果图如下:

enter image description here

然而,我需要做同样的事情,只需要用条形图而不仅仅是积分。 有人帮忙吗?

提前致谢, 涓

示例数据

请注意,我使用tidyr::ghathermagrittr的管道%>%来创建我的。{1}} 例如,reshape2::melt

可以实现同样的目的
require(reshape2)
set.seed(0)
df <- data.frame(categ=c("A", "B", "C"), 
                 V1=rpois(3, 20), 
                 V2=rnorm(3, 100, 40), 
                 V2=runif(3))
df <- melt(df, id="categ", variable.name="Var", value.name="X")

无论如何,结果data.frame看起来像这样:

categ  Var           X
    A   V1  25.0000000
    B   V1  18.0000000
    C   V1  25.0000000
    A   V2 150.8971729
    B   V2 116.5856574
    C   V2  38.4019983
    A V2.1   0.1765568
    B V2.1   0.6870228
    C V2.1   0.3841037

1 个答案:

答案 0 :(得分:0)

好的,我认为这更简单,我只需要在stat = "identity"电话上添加geom_bar

p  <- ggplot(df, aes(categ, X, color=Var)) + geom_bar(stat="identity")
p + facet_grid(Var ~ ., scale="free")

Colors are still not quite good, but that's easier to fix, I hope...