【问题标题】:Limiting the number of categories on facets in a facet plot限制构面图中构面的类别数量
【发布时间】:2013-06-02 18:43:20
【问题描述】:

我正在使用以下方法制作 facet_grid 图:

sample <- read.csv('sample.csv')

ggplot(sample, aes(category, count)) + geom_bar() + facet_grid(. ~ parent_id)

我的数据结构如下:

id,parent_id, category, count
1,          21,     C1,       4
2,          21,     C2,       7
3,          21,     C3,       4
4,          22,     D1,      28
5,          22,     D2,      20
6,          22,     D3,       0
7,          22,     D5,       1
8,          22,     D6,       4
9,          22,     D7,       1
10,         23,     E1,      17
11,         23,     E2,      33
12,         23,     E3,      31

当我对此进行分面图时,它看起来像这样:

我想要的是限制每个方面的类别数量,以便我只在第一个图(等)上显示C1, C2, C3。有没有办法可以限制此处显示的类别数量?


这是dput(sample)和我的plot命令的输出,这样我的图像就可以很容易地复制:

sample <-  

structure(list(id = 1:12, parent_id = c(21L, 21L, 21L, 22L, 22L, 
22L, 22L, 22L, 22L, 23L, 23L, 23L), category = structure(1:12, .Label = c("     C1", 
"     C2", "     C3", "     D1", "     D2", "     D3", "     D5", 
"     D6", "     D7", "     E1", "     E2", "     E3"), class = "factor"), 
    count = c(4L, 7L, 4L, 28L, 20L, 0L, 1L, 4L, 1L, 17L, 33L, 
    31L)), .Names = c("id", "parent_id", "category", "count"), class = "data.frame", row.names = c(NA, 
-12L))

 ggplot(sample, aes(category, count)) + geom_bar() + facet_grid(. ~ parent_id)

【问题讨论】:

    标签: r plot ggplot2 facets


    【解决方案1】:

    您可以将scales="free_x" 添加到facet_grid()。在这种情况下,对于每个方面,您将仅在用于特定方面的值范围内具有 x 值。通过添加space="free_x",您可以确保条形在所有方面具有相同的宽度。

    ggplot(sample, aes(category, count)) + geom_bar() + 
      facet_grid(. ~ parent_id,scale="free_x",space="free_x")
    

    【讨论】:

    • 谢谢!这是非常有用的。有没有办法固定宽度,使所有的条都具有相同的厚度? geom_bar(width=.5) 似乎与整体刻面宽度成正比,与条形本身不成正比。
    • 哦,太棒了!谢谢你。我必须花更多时间阅读和理解facet_grid()
    • 我认为如果需要的话,还有一种方法可以从中间面板中删除 D3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2021-04-19
    • 2023-03-15
    • 2012-05-16
    • 2015-07-01
    • 1970-01-01
    相关资源
    最近更新 更多