作者:多米音乐_34024963 | 来源:互联网 | 2023-05-26 14:17
我使用geom_histogram在R中构建直方图,我想将我的x轴缩放到显示的252个insted 252并且看到一个刻度evrey 5数字(0,5,10等),我使用了scale_x_continuous(breaks=(0,155,5)
.它工作但直方图并未在整个屏幕上显示.我用xlim(0,155)
它在整个屏幕上显示直方图,但它覆盖了我定义的刻度.
1> Stibu..:
问题在于它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/