如何根据R中的堆积条形图产生更好的数据可视化?

时间:2012-06-11 23:38:24

标签: r data-visualization

我在两个配置ab中运行了包含不同线程的程序。我将其时间细分为btimestimevtime。请参阅下面的数据。我需要绘制堆积图,如下所示。但是,我很难将线程和配置的数量表示为R中的x轴标签。有些人可以帮助在R请求的堆积图中更好地表示这些数据。请参阅下面的图和我正在使用的R代码。

数据:

config threads  btime   stime   vtime
a   2   0.08    0.32   0.09
b   2   0.32    0.19   0.16
a   4   3.72 2841.13   0.22
b   4   18.21 2865.79   5.12
a   8   5.45 2824.46   4.77
b   8   23.27 2790.14  11.89
a   16  57.63 3302.55  94.25
b   16  62.41 4041.19  82.56
a   32  119.08 3705.62 210.14
b   32  183.01 4411.14 234.17
a   64  211.51 2823.69 270.38
b   64  364.38 4091.97 387.83

R代码

> barplot(t(data1[c(3:5)]), ylab="Time(seconds)", sp=c(0.1, 0.2, 1.0, 0.2, 1.0, 0.2, 1.0, 0.2, 1.0, 0.2, 1.0, 0.2),col=c("white","gray20","gray60"))
> legend("topleft",legend=c("btime","stime","vtime"), bty="n",cex=1.5 , horiz=T, adj=0.2, fill=c("white","gray20","gray60"))

enter image description here

1 个答案:

答案 0 :(得分:4)

ggplot和lattice在这里非常有用,但是以不同的方式考虑数据是有用的:你会希望将它表示为类似

config threads time_type time_value
[...]  [...]    vtime     0.03

来自重塑的融化实现了这一点(参见教程http://www.statmethods.net/management/reshape.html

然后,你可以做一些像...的情节 qplot(config, time_value, data=data, group=time_type, fill=time_type, geom="barplot", facets= .~threads)

(教程@ http://www.r-bloggers.com/basic-introduction-to-ggplot2/