ggplot无法解释的结果

Tyl*_*ker 3 r ggplot2

我开始制作一个可重复的例子来提出另一个问题,甚至无法解决这个问题.无论如何,我试图将分类数据绘制成刻面条形图.所以我使用CO3(底部的代码)创建了自己的数据集.只是简单地绘制x似乎是正常的: 在此输入图像描述

但是当我试着面对时,它会变得很时髦.显示一切都是平等的. 在此输入图像描述

这没有任何意义,因为它表明每个子组都有相同比例的出局,ftable而这些数据并未得到证据:

                   Type Quebec Mississippi
outcome Treatment                         
none    nonchilled           7           6
        chilled              4           7
some    nonchilled           6           4
        chilled              5           5
lots    nonchilled           5           4
        chilled              6           3
tons    nonchilled           3           7
        chilled              6           6
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

library(ggplot2)
set.seed(10)
CO3 <- data.frame(CO2[, 2:3], outcome=factor(sample(c('none', 'some', 'lots', 'tons'), 
           nrow(CO2), rep=T), levels=c('none', 'some', 'lots', 'tons')))
CO3
x <- ggplot(CO3, aes(x=outcome)) + geom_bar(aes(x=outcome))
x
x  + facet_grid(Treatment~., margins=TRUE)

with(CO3, ftable(outcome, Treatment, Type))
Run Code Online (Sandbox Code Playgroud)

编辑:Brian描述的这个问题很容易让你在需要堆叠数据时发现自己.为了得到这个,直到ggplot的下一个版本(我假设Hadley意识到这个问题)我已经创建了一个愚蠢的小便利函数来快速地将ID列添加到数据框:

IDer <- function(dataframe, id.name="id"){
    DF <- data.frame(c=1:nrow(dataframe), dataframe)
    colnames(DF)[1] <- id.name
    return(DF)
}

IDer(mtcars)
Run Code Online (Sandbox Code Playgroud)

Bri*_*ggs 5

0.9.0版本中有ggplot2关于facet_grid()行和重复行的错误.请参阅https://github.com/hadley/ggplot2/issues/443

解决方法是添加虚拟列以打破重复.

CO3$dummy <- 1:nrow(CO3)

ggplot(CO3, aes(x=outcome)) + 
  geom_bar(aes(x=outcome)) + 
  facet_grid(Treatment~., margins=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述