繁体   English   中英

如何缩放x轴并在R中添加刻度

[英]How to scale x axis and add ticks in R

我使用geom_histogram在R中构建一个直方图,我想将我的x轴缩放到显示的252个insted 252并且看到一个刻度evrey 5数字(0,5,10等),我使用了scale_x_continuous(breaks=(0,155,5) 。它工作但是直方图并没有在整个屏幕上显示。我使用了xlim(0,155)它在整个屏幕上显示了直方图,但它覆盖了我定义的刻度。

问题是xlim(0, 155)实际上是scale_x_continuous(lim = c(0, 155)) xlim(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/

break为您的主要刻度线提供一系列序列。 尝试:

scale_x_continuous(breaks=seq(0,155,5))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM