2014-09-03 58 views
0

我有一个2维数据集(矩阵/数据帧),看起来像这样绘制的多维数据集

   779  482  859  1156 
maxs   56916.00 78968.00 51156.00 44827.01 
Means+Stdv 41784.70 64440.83 38319.10 42767.14 
Mean_Cost  31863.18 44407.40 29365.78 38711.29 
Means_Stdv 21941.66 24373.97 20412.45 34655.43 
mins   21088.00 13768.00 24132.00 31452.00 

的779,489859,1156是我想要绘制在x轴上的值

在列中的值的其余部分是correpond到每个X

现在我要绘制整个数据集,让我与以下几点图表值

(779,56916),(779,41784)......

(482,78968),(482,64440).....等等

我做它的方式到目前为止是这样的(它给了我,我要找的情节)

plot(colnames(resultsSummary),resultsSummary[1,],ylim=c(0,80000),pch=6) 
points(colnames(resultsSummary),resultsSummary[2,],pch=3) 
points(colnames(resultsSummary),resultsSummary[3,]) 

等等.....按行

绘制行我肯定有一个更好的办法来做到这一点,但我不知道如何,有什么建议?

+0

如果你问一个 “更好的办法,” 你想用它来确定什么是标准更好?如果你得到你想要的阴谋,那有什么问题? – MrFlick 2014-09-03 15:18:33

+0

我发现6行生成一个小数据集的一个阴谋很多代码,我认为有一个更好的方法(compacter?)做它 – StaticBug 2014-09-03 15:25:09

回答

2
DF <- read.table(text="    779  482  859  1156 
maxs   56916.00 78968.00 51156.00 44827.01 
Means+Stdv 41784.70 64440.83 38319.10 42767.14 
       Mean_Cost  31863.18 44407.40 29365.78 38711.29 
       Means_Stdv 21941.66 24373.97 20412.45 34655.43 
       mins   21088.00 13768.00 24132.00 31452.00", 
       header=TRUE, check.names=FALSE) 
m <- as.matrix(DF) 
matplot(as.integer(colnames(m)), 
     t(m), pch=seq_len(ncol(m))) 

resulting plot

1

以下也适用:

ddf = structure(list(var = structure(c(1L, 4L, 2L, 3L, 5L), .Label = c("maxs", 
"Mean_Cost", "Means_Stdv", "Means+Stdv", "mins"), class = "factor"), 
    X779 = c(56916, 41784.7, 31863.18, 21941.66, 21088), X482 = c(78968, 
    64440.83, 44407.4, 24373.97, 13768), X859 = c(51156, 38319.1, 
    29365.78, 20412.45, 24132), X1156 = c(44827.01, 42767.14, 
    38711.29, 34655.43, 31452)), .Names = c("var", "X779", "X482", 
"X859", "X1156"), class = "data.frame", row.names = c(NA, -5L 
)) 

ddf 
     var  X779  X482  X859 X1156 
1  maxs 56916.00 78968.00 51156.00 44827.01 
2 Means+Stdv 41784.70 64440.83 38319.10 42767.14 
3 Mean_Cost 31863.18 44407.40 29365.78 38711.29 
4 Means_Stdv 21941.66 24373.97 20412.45 34655.43 
5  mins 21088.00 13768.00 24132.00 31452.00 

ddf[6,2:5]=as.numeric(substr(names(ddf)[2:5],2,4)) 
ddf2 = data.frame(t(ddf)) 
ddf2 = ddf2[-1,] 
mm = melt(ddf2, id='X6') 
ggplot(mm)+geom_point(aes(x=X6, y=value, color=variable)) 

enter image description here