簡體   English   中英

R:繪制多條曲線與一條變量,但對於4個因子

[英]R: plot multiple curves vs one var but for 4 factors

我有一個DF看起來像:

   id     app  vac dac
1:  1 1000802  579 455
2:  1 1000803 1284 918
3:  1 1000807   68  66
4:  1 1000809 1470 903
5:  2 1000802  407 188
6:  2 1000803  365 364
7:  2 1000807  938 116
8:  2 1000809  699 570

我需要在同一個畫布上為每個app繪制vacdac作為id的函數。 我知道如何通過使用melt和批量繪圖與ggplot只為一個app 但我被困在如何做任意數量的因素/水平。

在這個例子中,4個app將共有8條曲線。 有什么想法嗎? 這是測試的數據框。 謝謝!!

df = structure(list(id = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), app = c(1000802, 
                                                               1000803, 1000807, 1000809, 1000802, 1000803, 1000807, 1000809
), vac = c(579, 1284, 68, 1470, 407, 365, 938, 699), dac = c(455, 
                                                             918, 66, 903, 188, 364, 116, 570)), .Names = c("id", "app", "vac", 
                                                                                                            "dac"), class = c("data.table", "data.frame"), row.names = c(NA, 
                                                                                                                                                                         -8L))

編輯:對軸的一些說明, x軸= idy軸= 4個app因子中每一個的vacdac

有點不清楚你在尋找什么,但如果你正在尋找一條連接vacdac值的線,這里有一個使用dplyrtidyr的解決方案。

首先, gather vacdac列(這類似於reshape2::melt但是我發現更容易理解的語法)。 然后,將variable (具有“vac”和“dac”)設置為x位置,將value (來自舊的vacdac列)設置為y,然后將appid映射到美學(此處為colorlinetype )。 設置group以確保它連接正確的點對,並添加geom_line

df %>%
  gather(variable, value, vac, dac) %>%
  ggplot(aes(x = variable
             , y = value
             , color = factor(app)
             , linetype = factor(id)
             , group = paste(app, id))) +
  geom_line()

在此輸入圖像描述

給定問題編輯,您可以像這樣更改軸:

df %>%
  gather(variable, value, vac, dac) %>%
  ggplot(aes(x = id
             , y = value
             , color = factor(app)
             , linetype = variable
             , group = paste(app, variable))) +
  geom_line()

在此輸入圖像描述

我不確定,我理解你的問題,但我會做類似的事情

ggplot(df,aes(vac,app,group=app)) + geom_point(aes(color=factor(app)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM