2012-02-17 73 views
1

這個小組一直非常有幫助,我非常感謝所有的幫助。你們真棒。我搜索,但無法找到答案。我有一個數據框,其中包括第一列服務器名稱,其他人有不同的指標。我希望能夠使用ggplot2來查看數據框並根據唯一行(服務器名稱)創建圖表。如何在大數據集的情況下做到這一點。R在不同的圖表中繪製獨特的行

下面是一個簡單的數據集:

Hostname   Date   CPU Mem cpu  avg  io  mem   
host1  2012-01-01 01:00:00 27.24 2.33  0.47  2.33  27.20 
host1  2012-01-01 02:00:00 28.00 22.38  36.50  22.38  27.49 
host2  2012-01-01 03:00:00 29.31 7.58  12.23  7.58  28.56 
host2  2012-01-01 04:00:00 29.37 2.44  0.35  2.44  29.30 
host3  2012-01-01 05:00:00 29.07 2.86  1.04  2.86  28.02 
host3  2012-01-01 06:00:00 28.05 2.74  0.67  2.74  27.96 

> str(yy) 
List of 10 
$ Hostname : Factor w/ 37 levels "host1",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ Date  : POSIXct[1:26088], format: "2012-01-01 01:00:00" "2012-01-01   
02:00:00" "2012-01-01 03:00:00" "2012-01-01 04:00:00" ... 
$ variable : chr [1:26088] "1:00:00" "2:00:00" "3:00:00" "4:00:00" ... 
$ 5   : num [1:26088] 27.2 28 29.3 29.4 29.1 ... 
$ 60  : num [1:26088] NA NA NA NA NA NA NA NA NA NA ... 
$ 61  : num [1:26088] NA NA NA NA NA NA NA NA NA NA ... 
$ CPUAVG : num [1:26088] 2.33 22.38 7.58 2.44 2.86 ... 
$ CPUAVG+Sev: num [1:26088] 0.47 36.5 12.23 0.35 1.04 ... 
$ CPUMaximum: num [1:26088] 2.33 22.38 7.58 2.44 2.86 ... 
$ MemoryAVG : num [1:26088] 27.2 27.5 28.6 29.3 28 ... 
- attr(*, "row.names")= int [1:26088] 1 2 3 4 5 6 7 8 9 10 ... 
- attr(*, "idvars")= chr [1:3] "Hostname" "Date" "variable" 
- attr(*, "rdimnames")=List of 2 
..$ :'data.frame': 26088 obs. of 3 variables: 
.. ..$ Hostname: Factor w/ 37 levels "host1",..: 1 1 1 1 1 1 1 1 1 1 ... 
.. ..$ Date : Factor w/ 31 levels "01/01/2012","01/02/2012",..: 1 1 1 1 1 1 1 1 
1 1 ... 
.. ..$ variable: Factor w/ 24 levels "Hour1","Hour2",..: 1 2 3 4 5 6 7 8 9 10 ... 
..$ :'data.frame': 7 obs. of 1 variable: 
.. ..$ MetricType: Factor w/ 7 levels "5","60","61",..: 1 2 3 4 5 6 7 
+0

嗨Tyle,遺憾的無知,但你怎麼接受的答案。他們都非常重視這一點。 – 2012-02-17 21:08:51

+0

在每個問題上,upvote/downvote按鈕下都有一個複選框。您單擊複選標記以確定最適合您的答案。 – 2012-02-17 21:12:12

+1

@ mikesmith:如果有多個答案對您同樣正確,請選擇最老的答案(即第一個答案獲勝) – digEmAll 2012-02-17 21:13:17

回答

1

聽起來像磨製的問題給我。這是一個例子。更新了您的數據

# Dummy data  
x <- data.frame(
    hostname=rep(paste("host",1:3,sep=""),1000), 
    date=as.Date(1:1000,origin="2005-01-01"), 
    CPUMEM=rnorm(1000)+20, 
    CPU=rnorm(1000)+10, 
    avg=rnorm(1000)+10, 
    io=rnorm(1000)+5, 
    mem=rnorm(1000)+27) 

x <- melt(x, c("hostname","date")) 

ggplot(x, aes(date,value, color=variable)) + geom_line() + facet_grid(~hostname) 

enter image description here

+0

還沒有工作。出現此錯誤:「stat_bin:binwidth默認爲範圍/ 30。使用'binwidth = x'來調整此」 – 2012-02-17 21:52:29

+0

聽起來像你還沒有將日期...轉換爲日期。嘗試'as.Date(x $ date)'並再次運行它。 – 2012-02-17 21:54:26

+0

如果這不起作用,你可以發佈'str(your_df)'? – 2012-02-17 21:55:04