在ggplot2中重新调整geom_histogram上的x轴

时间:2018-03-29 04:43:47

标签: r ggplot2 histogram

geom_histogram中创建ggplot时,bin标签会直接显示在条形图下方。如何使它们出现在bin的任一侧,以便它们描述每个bin的范围(以便包含从0到10的case的bin将出现在0和10标签之间)?

我尝试使用

geom_histogram(position=position_nudge(5))

但是,我正在使用的直方图是堆叠的(以区分每个bin中的类别),当我添加此位置时,此效果会被破坏。还有另一种方法吗?也许移动轴标签本身而不是条形图?

可重复的代码:

dd<-data.frame(nums=c(1:20,15:30,40:55),cats=c(rep("a",20),rep("b",30),rep("c",2)))
ggplot(dd, aes(nums))+geom_histogram(aes(nums,fill=cats),dd,binwidth = 10)

结果如下:

Looks like this

我希望将条向右移动5,以使0与直方图的左侧对齐

2 个答案:

答案 0 :(得分:1)

您可以尝试定义中断和标签

n <- 10
ggplot(dd, aes(nums, fill=cats)) +
  geom_histogram(binwidth = n, boundary = 0) + 
  scale_x_continuous(breaks = seq(0,55,n), labels = seq(0,55, n))

enter image description here

答案 1 :(得分:0)

以下移动轴的标签。我不确定如何移动x轴上的刻度,所以我删除了它们。

ggplot(dd, aes(nums))+geom_histogram(aes(nums),dd,binwidth = 10)+
  theme(axis.text.x = element_text(hjust = 5),
        axis.ticks.x  = element_blank())