我使用geom_histogram在R中构建直方图,我想将我的x轴缩放到显示的252个insted 252并且看到一个刻度evrey 5数字(0,5,10等),我使用了{{ 1}}。它工作但直方图并未在整个屏幕上显示。
我使用了scale_x_continuous(breaks=(0,155,5)
它在整个屏幕上显示了直方图,但是它覆盖了我定义的刻度。
答案 0 :(得分:11)
问题是xlim(0, 155)
实际上是scale_x_continuous(lim = c(0, 155))
的简写。因此,当您同时使用xlim()
和scale_x_continuous()
时,ggplot会混淆,并且只会使用scale_x_continuous()
的两个调用之一。如果我这样做,我会收到以下警告:
缩放' x'已经存在了。为' x'添加另一个比例,它将取代现有比例。
如您所见,ggplot仅使用您最后定义的比例。
解决方案是将限制和中断放入scale_x_continuous()
的一次调用中。以下是您可以运行以查看其工作原理的示例:
data <- data.frame(a = rnorm(1000, mean = 100, sd = 40))
ggplot(data, aes(x = a)) + geom_histogram() +
scale_x_continuous(breaks = seq(0, 155, 5), lim = c(0, 155))
让我再补充一句:现在休息时间与箱子宽度不相符,我觉得这很奇怪。所以我建议你也改变bin宽度。下面再次绘制直方图,但将bin宽度设置为5:
ggplot(data, aes(x = a)) + geom_histogram(binwidth = 5) +
scale_x_continuous(breaks = seq(0, 155, 5), lim = c(0, 155))
以下链接提供了许多关于如何在ggplot中更改轴的其他信息和示例:http://www.cookbook-r.com/Graphs/Axes_%28ggplot2%29/
答案 1 :(得分:1)
break
会列出主要刻度线的序列。尝试:
scale_x_continuous(breaks=seq(0,155,5))