在 x 轴上显示填充标签

问题描述 投票:0回答:1
df <- data.frame(x1=c("A","B1","B2","C1","C2","C3"), x2=c("A","B","B","C","C","C"), y=c(1,2,3,4,5,6))

我正在寻找一种方法来躲避基于

x2
的条形,但在 x 轴上显示
x1
标签。我可以做这样的事情:

p <- ggplot(aes(x=x2, y=y, fill=x1), data=df)
p + geom_bar(stat="identity", position="dodge")

它正确地避开了条形,但现在我不知道如何用 x 轴上的

x2
标签替换
x1
标签。

r ggplot2
1个回答
0
投票

一种选择是将

x1
映射到
x
上,但按
x2
进行分面以对条形图进行分组。对于小面,我使用
facet_grid
,因为它允许使用
space="free_x"
实现相同宽度的胸罩。但如果你不需要这样,你当然可以切换到
facet_wrap()
:

library(ggplot2)

ggplot(aes(x = x1, y = y, fill = x1), data = df) +
  geom_col(width = 1) +
  facet_grid(~x2,
    scales = "free_x",
    switch = "x",
    space = "free_x"
  ) +
  theme(
    strip.placement = "outside",
    strip.text = element_blank(),
  )

© www.soinside.com 2019 - 2024. All rights reserved.