我有以下数据集:
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? 谢谢
答案 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)