【问题标题】:How to scale x axis and add ticks in R如何缩放x轴并在R中添加刻度
【发布时间】:2015-01-16 15:23:46
【问题描述】:

我使用 geom_histogram 在 R 中构建一个直方图,我想将我的 x 轴缩放到 155 个显示的 252 个,并查看一个刻度 evrey 5 个数字(0、5、10 等),我使用了 @987654321 @。它起作用了,但直方图并未显示在整个屏幕上。 我使用了xlim(0,155),它在整个屏幕上显示了直方图,但它覆盖了我定义的刻度。

【问题讨论】:

    标签: r ggplot2 axis


    【解决方案1】:

    问题在于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 宽度。下面再次绘制直方图,但将 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/

    【讨论】:

    • 我为我的 raw_data 图使用了一组中断,但后来想将其与 FFT 重建并排比较,改变 raw_data 图的比例以匹配 FFT 重建的比例。我在markdown中这样做。我假设将使用最后一个 scale_x_continuous 。它有效,但如何抑制消息?
    • @NateLockwood 评论并不是讨论新问题的地方。如果你有一个问题并且在 StackOverflow 上找不到答案,你最好问一个新问题。也就是说,尝试用suppressMessages() 封装替换比例尺的命令。
    【解决方案2】:

    break 为您的主要报价获取序列列表。试试:

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

    【讨论】:

    • 这会根据要求设置刻度线,但不会将 x 轴的上限设置为 155。
    • scale_x_continuous(breaks=seq(0,155,5), limits=c(0,155))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多