2016-09-28 158 views
-3

我正在一個圖上應該包含同一個圖上的3個不同的行。我工作的數據幀是後續:
enter image description here繪製一個多行ggplot圖

我希望能夠用IND(我的數據點)在x軸上,然後繪製利用配有柱傳來的數據3條不同的線, b和c。 我只設法畫一條線。

你能幫我嗎?我現在使用的代碼是

ggplot(data=f, aes(x=ind, y=med, group=1)) + 
    geom_line(aes())+ geom_line(colour = "darkGrey", size = 3) + 
    theme_bw() + 
    theme(plot.background = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank()) 
+1

您需要將數據融入長格式。 –

+0

[如何做一個偉大的R可重現的例子?](http://stackoverflow.com/questions/5963269) – zx8754

回答

0

關鍵是將有問題的列傳播到新變量中。這發生在以下代碼中的gather()步驟中。其餘的幾乎是鍋爐板ggplot2。

library(ggplot2) 
library(tidyr) 

xy <- data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10), 
       ind = 1:10) 

# we "spread" a and b into a a new variable 
xy <- gather(xy, key = myvariable, value = myvalue, a, b) 

ggplot(xy, aes(x = ind, y = myvalue, color = myvariable)) + 
    theme_bw() + 
    geom_line() 

enter image description here

0

熔體和ggplot:

df$ind <- 1:nrow(df) 
head(df) 
      a   b  med   c ind 
1 -87.21893 -84.72439 -75.78069 -70.87261 1 
2 -107.29747 -70.38214 -84.96422 -73.87297 2 
3 -106.13149 -105.12869 -75.09039 -62.61283 3 
4 -93.66255 -97.55444 -85.01982 -56.49110 4 
5 -88.73919 -95.80307 -77.11830 -47.72991 5 
6 -86.27068 -83.24604 -86.86626 -91.32508 6 

df <- melt(df, id='ind') 
ggplot(df, aes(ind, value, group=variable, col=variable)) + geom_line(lwd=2) 

enter image description here