【发布时间】:2017-01-07 16:25:48
【问题描述】:
我正在学习 rbenchmark 包以对算法进行基准测试并查看 R 环境中的性能。但是,当我增加输入时,基准测试结果会有所不同。为了展示不同输入的算法性能如何,需要生成折线图或曲线。我希望有一条线或曲线来显示使用不同数量的输入的性能差异。我使用的算法工作 O(n^2)。在结果图中,X 轴显示输入的观察次数,Y 轴分别显示运行时间。我怎样才能通过使用@987654324 更优雅地实现这一点@?谁能给我一些想法来生成所需的情节?请问有什么办法吗?
让我们想象一下,这些是输入文件:
foo.csv
bar.csv
cat.csv
当我使用两个 csv 文件作为输入时的基准测试结果:
df_2 <- data.frame(
test=c("s3","s7","s4" ,"s1" ,"s2" ,"s5" ,"s6" ,"s9","s8"),
replications=c(10,10, 10, 10 ,10 ,10 ,10 ,10 ,10),
elapsed=c(0.23, 0.28, 0.53 , 0.80 , 4.12 , 8.57 , 8.81 ,20.16 ,24.53),
relative=c( 1.000 , 1.217 , 2.304 , 3.478 , 17.913 , 37.261 , 38.304 , 87.652 ,106.652),
user.self=c(0.23, 0.28 , 0.53 , 0.61 , 4.13 , 8.55 , 8.80 ,18.06 ,19.08),
sys.self=c(0.00, 0.00 ,0.00, 0.00 ,0.00, 0.00 ,0.00 ,0.13, 0.51)
)
这次我使用了三个 csv 文件作为输入:
df_3 <- data.frame(
test=c("s3", "s7" ,"s4", "s1", "s5", "s6","s2", "s9","s8"),
replications=c(10,10, 10, 10 ,10 ,10 ,10 ,10 ,10),
elapsed=c( 0.34 , 0.47 , 0.70 , 2.41 ,8.26 , 8.75 , 9.03, 28.78 ,36.56),
relative=c( 1.000 , 1.382 , 2.059 , 7.088 , 24.294 , 25.735 , 26.559 ,84.647 ,107.529),
user.self=c(0.34 , 0.46 ,0.70 , 1.72 , 8.26 , 8.74 ,9.01, 26.24 ,30.95),
sys.self=c(0.00 ,0.00 ,0.00, 0.12, 0.00 ,0.00 ,0.00, 0.12 ,0.77)
)
在我想要的图中,两条线图或曲线必须放在一个网格中。
如何使用上述基准测试结果获得漂亮的折线图或曲线?如何在 R 中获得显示算法性能的所需图?非常感谢
【问题讨论】:
标签: r ggplot2 benchmarking