绘制多维数据集

时间:2014-09-03 15:12:49

标签: r plot ggplot2 visualization shiny

我有一个看起来像这样的二维数据集(矩阵/数据框)

              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,489,859,1156是我想在x轴上绘制的值

列上的其余值是与每个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,])

等等......逐行绘制

我确信有更好的方法可以做到,但我不知道如何,有任何建议吗?

2 个答案:

答案 0 :(得分: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 :(得分: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