2014-09-03 63 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