【问题标题】:ggplot2 axis for time durations on a log-like scaleggplot2 轴以类似对数的方式显示持续时间
【发布时间】:2018-09-28 16:50:49
【问题描述】:

我的数据是特定类型事件的持续时间(以秒为单位)(整数)。一些持续时间是几天,一些是几小时,更多是几分钟,但必须是几秒钟。我想对这些数据进行直方图,鉴于大多数值都很小,我希望 x 轴在 log10 刻度上。

我知道如何将 x 轴标签格式化为以 10 的幂表示,例如:10^1、10^2、10^3 等。 这不是我想要的!例如,10^5 秒是不容易理解的,以小时或天为单位来表示这个值会更有意义。

我想要的是一个带有标签的轴,看起来像这样某事

1 秒、10 秒、1 分钟、10 分钟、1 小时、10 小时、1 天、1 周、1 个月、1 年...等.

(如果持续时间小于 1 秒,则以 ms、μs、ns 表示,如果持续时间非常长,则以 ka、Gy 等表示,则加分)

【问题讨论】:

    标签: r ggplot2 time axis-labels


    【解决方案1】:

    将 scale_x_log10() 与 ggplot2 中的中断和标签参数一起使用

    df <- data.frame(time=c(1,10,100,10000),value=c(5,10,50,20))
    ggplot(df,aes(x=time,y=value))+
        geom_point()+
        scale_x_log10(breaks=c(1,60,3600),labels=c("1sec","1min","1hour"))
    

    因此中断将是秒数,并将秒数的转换标记为更易读的内容(在本例中为 1 秒、1 分钟和 1 小时)

    【讨论】:

    • 太棒了!这正是我需要的!
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多