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

时间:2015-01-16 15:23:46

标签: r ggplot2 axis

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

2 个答案:

答案 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))