2015-04-06 78 views
1

我下面ggplot添加兩個平均線情節

 RMSE  Model fold 
1 0.4164260 lm 1 
2 0.5412474 lm 2 
3 0.3496156 lm 3 
4 0.4431751 lm 4 
5 0.4082882 lm 5 
6 0.4398985 lm 6 
7 0.4506528 lm 7 
8 0.4236024 lm 8 
9 0.4346417 lm 9 
10 0.4982427 lm 10 
11 0.3993842 MARS 1 
12 0.5684007 MARS 2 
13 0.3487462 MARS 3 
14 0.4174607 MARS 4 
15 0.3930033 MARS 5 
16 0.4456201 MARS 6 
17 0.4373339 MARS 7 
18 0.4110089 MARS 8 
19 0.4249311 MARS 9 
20 0.4295155 MARS 10 

我繪製如下:

ggplot(df, aes(x=factor(fold), y=RMSE, group=Model, colour=Model)) + geom_line() 

我想爲這兩款車型做平均線。我怎樣才能做到這一點?

回答

4

的一種方式是創建一個包含裝置一個單獨的數據幀:

library(ggplot2) 
library(plyr) 
df_means <- ddply(df, "Model", summarise, mean_RMSE = mean(RMSE)) 
# Model mean_RMSE 
# 1 lm 0.4405790 
# 2 MARS 0.4275405 

ggplot(df, aes(x=factor(fold), y=RMSE, group=Model, colour=Model)) + 
    geom_line() + 
    geom_hline(data=df_means, aes(yintercept=mean_RMSE, color=Model), 
      linetype="dashed") 

Plot

還可以使用:geom_line()與「STAT」到情節由組審美裝置(雖然你將有較少的控制):

ggplot(df, aes(x=factor(fold), y=RMSE, group=Model, colour=Model)) + 
    geom_line() + 
    geom_line(stat="hline", yintercept="mean", linetype="dashed") 

這使從 「推」 行:

Plot 2

+0

我添加了一個平滑的,它創造了一個非常奇怪的情節是否有添加平滑到多個情節? –

+0

@ Null-Hypothesis嘗試將每個問答分隔到一個問題/問題。如果你有一個「新的」問題,只需將它發佈到問題中。之前已經說過,平滑器可能沒有什麼問題 - 它可能會平滑每組,並且具有非常寬的置信區間,這會使情節看起來「奇怪」。 – JasonAizkalns