省略x轴水平,在刻面图中没有数据并更改条的宽度

时间:2012-06-30 22:50:43

标签: r ggplot2

正如您在下面的数据中所看到的,某些刻面变量“items”缺少x轴变量“type”的某些级别。例如,“items = 32”没有“type = A”。

我想摆脱x轴上与不存在的“类型”相对应的空格(例如,对于32个案例,输入A类型)。

一些数据(“临时”):

 type   items     value
    A      16       6.3
    B      16       8.3
    C      16       7.9
    B      32       7.7
    C      32       8.3
    C      64       7.9

绘图编码:

library(ggplot2)
ggplot(temp, aes(x = type, y = value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items)

enter image description here

=======================

修改

根据Joran的解决方案,设置scales = "free_x"正在做我想要的。但是,在项目编号32和64下,条形的宽度变得非常大。请帮助我为所有条形做出宽度。

ggplot(temp, aes(x = type, y = value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items, scales = "free_x")

enter image description here

1 个答案:

答案 0 :(得分:5)

只需按照joranEtienne Low-Décarie提供的说明关闭此未回答的问题。请提前投票joranEtienne Low-Décarie

另外,请注意Roman Luštrik上面有价值的评论“我希望你有充分的理由这样做。白色空间非常丰富,它让读者了解这些关卡值0(仍然是值)。“

# data
temp <- structure(list(type = structure(c(1L, 2L, 3L, 2L, 3L, 3L), .Label = c("A", 
"B", "C"), class = "factor"), items = c(16L, 16L, 16L, 32L, 32L, 
64L), value = c(6.3, 8.3, 7.9, 7.7, 8.3, 7.9)), .Names = c("type", 
"items", "value"), class = "data.frame", row.names = c(NA, -6L
))

# plot
library(ggplot2)
ggplot(temp, aes(type, value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items, scales = "free_x", space = "free") 

enter image description here