2014-01-16 109 views
1

我正在做一些计算,作为科学研究的一部分,而且我陷入了一个问题。这与数据可视化有关。 我收到了不同长度的子列表列表。这些子列表中的每一个都是每个单一情况下主变量数值的向量。问题是这样的: 有没有一种方法可以通过以下方式在三维图中显示它:假设x轴代表一个实验因子,y轴代表另一个实验因子,z轴代表轴的我们的nnumeric变量的数值。我需要以垂直线的方式显示它(从parralel到z轴)。这些垂直线的数量等于因子组合的数量(x轴和y轴)。下面是它用少量值(当列表尺寸相同时)的方式: https://www.dropbox.com/s/wdcgihjcqzobsqs/sample0.jpeg 我想使它在相同的布局中,只有更多的点数。这些子列表中的每一个都代表这些因素组合中的6种情况之一。R:6维矩阵的3D可视化

或者也许有不同的方式,这种数据的三维可视化的更好的方式。

这里是子表,我需要让我的可视化(我不知道这是不是与此有关)名单: '>温度 [[1]] [1] 395 310 235 290 240 490 270 225 430 385 170 55 295 320 270 130 300 285 130 200 225 90 205 [24] 340

[[2]] [1] 3 8

[[3]] [1] 1 0 0 0 3 2 5 2 3 5 2 3

[[4]] [1] 1 0 0 0 3 2 5 2 3 5 2 3

[[5]] [1] 1 1 1 2 3 5 2 5 3 3 3 2 3 2 3

[[6]] [ 1] 0 0 195 150 2 2 0 2 1 1 2 1 2 1 1 1 3 2 2 1 2 2 1 [24] 1 2 3 2 2 1 3 1 1 ` 任何帮助/建议将不胜感激。

+1

请'dput'你的清单,张贴的输出,所以我们可以让您的数据到我们的系统中更加游刃有余。 – BrodieG

+0

'> dput(TEMP) 列表(C(395,310,235,290,240,490,270,225,430,385,170, 55,295,320,270,130,300,285,130 ,200,225,90,205,340 ),C(3,8),C(1,0,0,0,3,2,5,2,3,5,2,3),C(1 ,0,0, 0,3,2,5,2,3,5,2,3),C(1,1,1,2,3,5,2,5,3,3,3, 2,3,2,3),C(0,0,195,150,2,2,0,2,1,1,2,1,2,1, 1,1,3,2,2, 1,2,2,1,1,2,3,2,1,3,1,1)) – user3202750

回答

2

这是一个可选的可视化。请注意,您没有6D问题,这是一个真正的3D问题,有2个因子维度和一个连续维度。有6种可能的因素组合。注意:我不得不做出什么因素组合对应到列表中哪些项目的假设:

facs <- cbind(f1=rep(f1, length(f2)), f2=rep(f2, each=length(f1))) # create factor combos 
lst <- list(c(395, 310, 235, 290, 240, 490, 270, 225, 430, 385, 170, 55, 295, 320, 270, 130, 300, 285, 130, 200, 225, 90, 205, 340), c(3, 8), c(1, 0, 0, 0, 3, 2, 5, 2, 3, 5, 2, 3), c(1, 0, 0, 0, 3, 2, 5, 2, 3, 5, 2, 3), c(1, 1, 1, 2, 3, 5, 2, 5, 3, 3, 3, 2, 3, 2, 3), c(0, 0, 195, 150, 2, 2, 0, 2, 1, 1, 2, 1, 2, 1, 1, 1, 3, 2, 2, 1, 2, 2, 1, 1, 2, 3, 2, 2, 1, 3, 1, 1)) 

library(data.table) 
facs.dt <- as.data.table(facs)[,list(time=sort(lst[[.GRP]])), by=list(f1, f2)] 
facs.dt[, id:=seq_along(time), by=list(f1, f2)] 
library(ggplot2) 
ggplot(facs.dt, aes(x=id, y=time)) + 
    geom_bar(stat="identity", position="dodge") + 
    scale_y_log10() + facet_grid(f1 ~ f2) 

enter image description here

产生的剧情上面显示,每个6个要素的组合,将记录所有的时间值。这使得读取连续变量比3D立方体更容易。

和免费尺度不同的观点:

ggplot(facs.dt, aes(x=id, y=time)) + 
    geom_bar(stat="identity", position="dodge") + 
    facet_wrap(~ f1 + f2, scales="free") + 
    opts(axis.text.x=element_blank(), axis.ticks.x=element_blank()) 

enter image description here