为什么xlim会切断连续刻度的边界值?

时间:2013-08-13 13:59:20

标签: r plot ggplot2 axis-labels

给定数据框:

d = structure(list(bin_start = 1:12, 
                   bin_count = c(12892838L, 1921261L, 438219L, 126650L, 41285L, 
                                 15948L, 6754L, 3274L, 1750L, 992L, 703L, 503L)), 
              .Names = c("bin_start", "bin_count"), 
              class = "data.frame", 
              row.names = c(NA, 12L))

我可以使用stat="identity"构建直方图:

ggplot(d) +
  geom_histogram(aes(x=bin_start, y=bin_count), stat="identity", 
                 colour="black", fill="white") +
  scale_x_continuous(breaks=1:12)

看起来像这样:

enter image description here

对长尾不满意我限制x比例(相当于xlim=c(1,6)):

ggplot(d) +
  geom_histogram(aes(x=bin_start, y=bin_count), stat="identity", colour="black", fill="white") +
  scale_x_continuous(breaks=1:12, limits=c(1,6)) 

但我得到了边界点x=1x=6消失了:

enter image description here

注意,y轴仍然像边界点一样缩放属于情节美学。它是一个功能还是一个bug?

1 个答案:

答案 0 :(得分:6)

功能的副作用。由于您自己对数据进行了分箱,因此您可能需要一个离散比例,以及x的因子:

ggplot(d) +
    geom_histogram(aes(x=factor(bin_start), y=bin_count), stat="identity", colour="black", fill="white") +
    scale_x_discrete(limit=as.character(1:6))

enter image description here