我正在尝试生成一个条形图,其中条形图根据第三个变量垂直淡化,并且我正在使用 geom_tile 来启用它。但是,对于 x 轴上的给定类别,我有多个条形图,我想避开它们的位置以将相同的 x 值放在不重叠的条形组中。
是否可以使用position='dodge'
或类似geom_tile
,如果可以,我的语法有什么问题?
a <- data.frame(x = factor(c(rep('a',5), rep('a',5), rep('b',5), rep('c',5))),
y = c(1:5, 1:5, 1:5, 1:5),
z = c(5:1, c(5,4,4,4,1), 5:1, 5:1)
)
ggplot(a, aes(x = x, y = y, group = x)) +
geom_tile(aes(alpha = z, fill = x, width = 1),
position = 'dodge')
示例数据框a
如下所示:
x y z
1 a 1 5
2 a 2 4
3 a 3 3
4 a 4 2
5 a 5 1
6 a 1 5
7 a 2 4
8 a 3 4
9 a 4 4
10 a 5 1
11 b 1 5
12 b 2 4
13 b 3 3
14 b 4 2
15 b 5 1
16 c 1 5
17 c 2 4
18 c 3 3
19 c 4 2
20 c 5 1
...并且当前代码的结果图在 x 值之间没有间隙,并且 x 为 a 的两个值彼此叠加:
我希望将 x 为“a”的那两个条绘制为单独的条。
这是我希望结果看起来像的模型。任一 a 列的数据都不正确,但它显示了所需的 x 轴上的分组: