R 微基准和自动绘图?
R microbenchmark and autoplot?
我有几个关于微基准测试和自动绘图的问题
假设这是我的代码:
library("ggplot2")
tm <- microbenchmark(rchisq(100, 0),rchisq(100, 1),rchisq(100, 2),rchisq(100, 3),rchisq(100, 5), times=1000L)
autoplot(tm)
- tm$time 的单位是什么?我如何将其转换为秒?
- 如何将 x 轴上的标记更改为类似 seq(from=0, to=100,by = 5) 的内容?
谢谢!
help(microbenchmark)
给出:
1. ‘time’ is the measured execution time
of the expression in nanoseconds.
NANOseconds 不是毫秒或微秒。
所以除以 1000000000 转换为秒。
关于你的第二个问题,我的第一反应是 "why?"。但它是基于 ggplot 的,所以你可以通过添加 ggplot 东西来覆盖位:
autoplot(tm) + scale_y_log10(name="seq(whatever)")
注意图是旋转的,所以 x 轴是 y 轴....
我只是觉得你真的是说 "tick marks"?略有不同但可行,但考虑到对数轴并不十分合适。您可以强制使用指定刻度线的非对数轴:
autoplot(tm) + scale_y_continuous(breaks=seq(0,10000,len=5),name="not a log scale")
您可以保留对数刻度并设置刻度点:
autoplot(tm) + scale_y_log10(breaks=c(50,200,500))
我有几个关于微基准测试和自动绘图的问题
假设这是我的代码:
library("ggplot2")
tm <- microbenchmark(rchisq(100, 0),rchisq(100, 1),rchisq(100, 2),rchisq(100, 3),rchisq(100, 5), times=1000L)
autoplot(tm)
- tm$time 的单位是什么?我如何将其转换为秒?
- 如何将 x 轴上的标记更改为类似 seq(from=0, to=100,by = 5) 的内容?
谢谢!
help(microbenchmark)
给出:
1. ‘time’ is the measured execution time
of the expression in nanoseconds.
NANOseconds 不是毫秒或微秒。
所以除以 1000000000 转换为秒。
关于你的第二个问题,我的第一反应是 "why?"。但它是基于 ggplot 的,所以你可以通过添加 ggplot 东西来覆盖位:
autoplot(tm) + scale_y_log10(name="seq(whatever)")
注意图是旋转的,所以 x 轴是 y 轴....
我只是觉得你真的是说 "tick marks"?略有不同但可行,但考虑到对数轴并不十分合适。您可以强制使用指定刻度线的非对数轴:
autoplot(tm) + scale_y_continuous(breaks=seq(0,10000,len=5),name="not a log scale")
您可以保留对数刻度并设置刻度点:
autoplot(tm) + scale_y_log10(breaks=c(50,200,500))