0

在绘制以下数据集时,我得到了一些奇怪的结果,并希望有人能指出这个问题。我正在尝试对我的数据进行分面包装,但结果似乎并不是真正的分面。

这是我的数据集type.mean.prod.rev

Group.1,            Group.2,           x
Prod1,         Expired,  0.339658789
Prod2,         Expired,  0.450215264
Prod3,         Expired,  0.597100606
Prod4,         Expired,  0.450625850
Prod1,   Expiring In 2013,  0.277917631
Prod2,   Expiring In 2013,  0.122023392
Prod3,   Expiring In 2013,  0.011988620
Prod4,   Expiring In 2013,  0.145343114
Prod1,   Expiring In 2014,  0.386366264
Prod2,   Expiring In 2014,  0.402404085
Prod3,   Expiring In 2014,  0.257194254
Prod4,   Expiring In 2014,  0.396879507
Prod1, Expiring Post 2015, -0.003942683
Prod2, Expiring Post 2015,  0.025357259
Prod3, Expiring Post 2015,  0.133716520
Prod4, Expiring Post 2015,  0.007151529

这是我的阴谋尝试

type.mean.prod.rev.bar <- ggplot(type.mean.prod.rev, 
                             aes(x = type.mean.prod.rev$Group.2,
                                 y = type.mean.prod.rev$x)) + 
  geom_bar(bindwidth = 2,
       stat = "identity") + 
  coord_flip() +
  facet_wrap( ~ Group.1, ncol = 4) +
  theme(axis.title.y = element_blank(),
    axis.title.x = element_blank(),
    panel.border = element_rect(color = "black", fill=NA),
    strip.text = element_text(vjust=.7, 
                               colour="white", 
                               face="bold", 
                               size = rel(1.2)),
    strip.background = element_rect(fill = rgb(red=25,
                                               green = 187,
                                               blue = 222, 
                                               maxColorValue = 255),
                                    colour = "black",
                                    size = 1)) + ylab(NULL) + xlab(NULL)


type.mean.prod.rev.bar                               

我的输出的问题是Group.2每个面板中的每个级别都没有表示,而是每个级别都在一个面板中,几乎就好像这些方面是纯粹的美学并且数据集仍然被视为整体(Group.1by x)。我知道 中有一个负数x,这可能会导致麻烦......但即使我将此值重置为零,type.mean.prod.rev[13, 3] <- 0我也会得到相同的结果。有谁知道为什么输出关闭?

4

2 回答 2

5

当你在里面时,aes只使用列名而不是$ 语法: ggplot(type.mean.prod.rev, aes(x=Group.2, y=x)) + ...

于 2013-08-08T23:52:16.817 回答
3

出现您的问题是因为您将审美设置为type.mean.prod.rev$Group.2而不是Group2.

这令人困惑ggplot

其他要点

  • binwidthstat = 'bin'仅当您使用, 来设置使用的宽度bars时才有意义width
  • Stacking not well defined when ymin != 0是您的negative值 in的结果,x对于条形图(从 开始0)并没有很好地定义——浮动条形图不包括geom_bar

因为我很懒,所以我重命名了你的数据集DT

# a minimal example (no theme alterations)
ggplot(DT, aes(x = Group.2, y = x)) + 
    geom_bar(width = .2,
             stat = "identity") + 
    coord_flip() +
    facet_wrap( ~ Group.1, ncol = 4) 
于 2013-08-08T23:57:39.717 回答