ggplot2在同一图中每组的不同趋势线类型

时间:2014-10-26 17:09:23

标签: r ggplot2

我有以下数据集:

ID        LAND         nifH        AOA  
1   agricultural    2272430.26  36942400.00  
2   agricultural    2371496.98  34871000.00  
3   agricultural    1506827.26  28344300.00  
4   agricultural    3072303.99  37818300.00  
5   agricultural    822133.30   17915800.00  
6   agricultural    1323219.76  25076900.00  
7   agricultural    2832007.75  12980100.00  
8   agricultural    1642144.16  66015700.00  
9   agricultural    1917801.37  30374200.00  
10  agricultural    1091955.01  24029000.00  
11  agricultural    541873.86   7077250.00  
12  agricultural    965444.92   15828000.00  
13  agricultural    2274418.90  2768740.00  
14  agricultural    503230.31   5417750.00  
15  agricultural    1134978.51  29983100.00  
16  agricultural    1138200.48  33578500.00  
17  agricultural    2599519.18  38748600.00  
18  agricultural    830130.41   19844300.00  
19  agricultural    1718543.20  39919100.00  
20  agricultural    848999.15   31510400.00  
21  agricultural    993265.16   19315900.00  
22  agricultural    1328374.95  8704000.00  
23  agricultural    588577.99   7107390.00  
24  natural 1265534.76  11633500.00  
25  natural 1424244.23  22986800.00  
26  natural 1645932.48  74835300.00  
27  natural 794645.31   53313900.00  
28  natural 1206666.73  57958200.00  
29  natural 1194033.93  56863100.00  
30  natural 1647612.35  76749100.00  
31  natural 1373078.78  78014900.00  
32  natural 2588474.53  95331700.00  
33  natural 1709596.00  49901500.00  
34  natural 2185120.45  82679000.00  
35  natural 1614733.98  21855400.00  
36  natural 1304585.38  49941000.00  
37  agricultural    699308.20   1609450.00  
38  agricultural    443499.88   776379.06  
39  natural 501543.10   49777.59  
40  natural 83694.81    9711.16  
41  agricultural    1545325.46  13227000.00  
42  agricultural    853717.25   851032.11  
43  natural 592806.33   731260.03  
44  agricultural    274198.19   30947.01  
45  agricultural    660950.13   76135400.00  
46  agricultural    731145.76   4326470.00  
47  agricultural    946266.70   1808130.00  
48  agricultural    1262565.09  648326.92  
49  agricultural    869847.46   16870500.00  
50  agricultural    1325450.54  78977500.00 

我使用下面的代码在AOA和NIRK之间制作一个散点图,并按LAND分组它们

p=ggplot(all_data_untransformed, aes(x = NIRK, y = AOA, colour = factor(LAND))) + 
  geom_point() +
  stat_smooth(method = "glm", family = gaussian, se = T) 

有没有办法为每个组执行不同的平滑方法(例如,为A组应用gam模型,为B组应用lm模型),还要为每个趋势线添加R sqt? 谢谢

1 个答案:

答案 0 :(得分:1)

要为不同级别设置不同的模型,一种解决方案是使用stat_smooth()的两次调用,然后为每个模型使用子集数据。

ggplot(all_data_untransformed, aes(x = nifH, y = AOA, colour =LAND)) + 
      geom_point() +
      stat_smooth(data=subset(all_data_untransformed,LAND=="agricultural"),
                                  method = "lm", se = T) +
      stat_smooth(data=subset(all_data_untransformed,LAND=="natural"),
                                method = "loess", se = T) 

enter image description here