R - ggplot2 轴,用于在类似对数的刻度上显示持续时间



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

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

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

1秒,10秒,1分钟,10分钟,1小时,10小时,1天,1周,1

个月,1年...等。

(持续时间小于 1 秒的奖励积分以毫秒、μs、ns 表示,持续时间很长的持续时间以 ka、Gy 等表示(

将 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 小时(

最新更新