我想在其中一个躲闪的酒吧上特别分层,我怎么能这样做?
在下面的例子中,我想在条形图上的cat3组中专门针对A3进行图层化.我知道cat3的x = 3,但是由于闪避和条宽的宽度相互依赖,所以很难将目标锁定在一个条上.有没有可用于计算x坐标的公式?我在下面提供了一个示例代码.谢谢
x1 <- c(15,75,28,60,80,100)
x2 <- c('cat1','cat2','cat3','cat1','cat2','cat3')
x3 <- c('A1','A2','A3','A4','A1','A2')
data=data.frame(cbind(x1,x2,x3),stringsAsFactors = F)
data$x1 <- as.numeric(data$x1)
data$x2 <- factor(data$x2)
data$x3 <- factor(data$x3)
ggplot(data,aes(y = x1, x = x2)) + geom_bar(stat = 'identity',
aes(fill = data$x3, width = 0.5),
position = position_dodge(width = 0.8))
Run Code Online (Sandbox Code Playgroud)
的width在参数position_dodge()是指定所述左杆的最左边边缘和右杆的最右边缘之间的距离.当闪避宽度为0.8时,x3类别的起点x = 3与任一条的边缘之间的距离为0.4(右侧+0.4,左侧+0.4)0.4的一半(即0.2)将带你到酒吧的中点(右边是+0.2,左边是-0.2).无论条宽如何都是如此.
这是一个例子,我在cat3的右边栏上画了一个H. y单位与y轴上的单位对齐.
ggplot(data,aes(y = x1, x = x2)) +
geom_bar(stat = 'identity',
aes(fill = x3, width = 0.5),
position = position_dodge(width = 0.8))+
geom_text(aes(x = 3.2, y = 25, label = "H"), size = 10)
Run Code Online (Sandbox Code Playgroud)
