【问题标题】:R microbenchmark and autoplot?R微基准和自动绘图?
【发布时间】:2015-04-04 17:11:15
【问题描述】:

我有几个关于微基准和自动绘图的问题

假设这是我的代码:

library("ggplot2")
tm <- microbenchmark(rchisq(100, 0),rchisq(100, 1),rchisq(100, 2),rchisq(100, 3),rchisq(100, 5), times=1000L)
autoplot(tm)
  1. tm$time 的单位是什么?如何将其转换为秒?
  2. 如何将 x 轴上的标记更改为 seq(from=0, to=100,by = 5)?

谢谢!

【问题讨论】:

  • 顺便说一句,每个帖子真的应该是一个问题....

标签: r microbenchmark


【解决方案1】:

help(microbenchmark) 给出:

1.  ‘time’ is the measured execution time
    of the expression in nanoseconds.

NANOseconds 不是毫秒或微秒。

所以除以 1000000000 转换为秒。

对于你的第二个问题,我的第一反应是“为什么?”。但它是基于 ggplot 的,所以你可以通过添加 ggplot 东西来覆盖位:

 autoplot(tm) + scale_y_log10(name="seq(whatever)")

注意绘图是旋转的,所以 x 轴是 y 比例......

我只是以为你真的是指“刻度线”?略有不同但可行,但考虑到对数轴,并不真正合适。您可以使用指定的刻度线强制使用非对数轴:

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

【讨论】:

猜你喜欢
  • 2019-02-08
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2020-09-01
相关资源
最近更新 更多