Построение нескольких переменных lm () на одном графике - PullRequest
0 голосов
/ 26 марта 2020

Как я могу создать сюжет такой же картины? введите описание изображения здесь

Когда красный - ddf типа, синий - def, а черный - все данные типа. Я хотел бы изобразить все на том же графике, как на картинке выше.

Я бы хотел оценить корреляцию между покровом навеса и Ba.ha в ddf, def и всем типом леса на одном участке и создать абстракцию всех .

У меня есть этот код, но он не работает.

newwnk<-wnkdata[type=="ddf" | type=="def",]
ggplot(newwnk,aes(x=canopy.cover,y=BA.ha,fill=type))+
geom_line(aes( color=type))+
geom_point(aes(color=type))+
theme(legend.position="right")

gg<-ggplot(newwnk,aes(y=BA.ha,x=canopy.cover,fill=type))+
geom_point(aes(color=type))+
theme(legend.position="right")

gg+geom_abline(intercept = 3.265, slope = 0.250,colour="red")+
geom_abline(intercept = 13.163473, slope = 0.004374,colour="green")+
geom_abline(intercept = 5.268, slope = 0.131,colour="black")+
scale_color_manual(breaks = c("ddf", "def"),
                 values=c("red", "green"))+
labs(title ="Correlation between Basal Area and Canopy Cover",
   x="Canopy Cover(%)",y="Basal Area(m2)")

пример данных

> wnkdata
         BA.ha canopy.cover type
1   17.7069514      63.2000  def
2   28.6620714      79.7500  def
3    2.2850614      42.7500  def
4   11.8785071      66.4500   rf
5    0.0000000       0.0000 agri
6    0.0000000       0.0000 agri
7   22.3944443      67.7500  ddf
8    5.0670086      26.9000  def
9   26.9553900       0.0000   rf
10  13.0599857      72.3500  def
11  25.5397371      69.6000   rf
12   2.4146100      36.9500 euca
13   9.3053243      74.7500  def
14   0.0000000       0.0000 agri
15   0.0000000       0.0000 agri
16  13.1382586      23.1500  ddf
17  17.9123371      33.7500  ddf
18   0.0000000       0.0000 agri
19  16.6883200      79.2500  def
20  21.4298386      68.9000  def
21   8.8040386      35.9000 euca
22  10.8589171      51.7000  leu
23  25.7815329      37.4000  leu
24  14.4387729      75.5500   rf
25   9.8081343      80.6500  def
26  13.0923729      31.5000  ddf
27  25.1658314      43.0500  ddf
28  10.8104700      51.4500  def
29   0.0000000       0.0000 agri
30   0.0000000       0.0000 agri
31   9.2947171      69.6500  def
32   5.4709914      57.6500   rf
33  17.0222329      74.1500  def
34  18.7882986      75.2500  leu
35   0.8837871      17.8500  hea
36  12.2794729      35.8000  ddf
37  13.2366614      35.4000  ddf
38   6.5029486      26.4000  mdf
39  20.9329214      21.0500  mdf
40  14.3082029      25.0500  def
41  10.9870043      40.4500  ddf
42  12.3888443      76.1500   rf
43   7.2739700      69.8000  def
44   4.2886329      75.5500  def
45   0.5274186      19.0000  hea
46  12.5320014      33.3000  ddf
47  13.2081086      43.2000  ddf
48  12.3165271      43.1500  ddf
49  16.7427071      29.9000  ddf
50  17.3300600       9.6000  mdf
51   7.3895329      58.3500  mdf
52  11.3363957      77.5500  def
53   2.0973857      22.6000  hea
54   9.7985957      35.2500  ddf
55  13.3474000      42.0500  ddf
56   9.6329043      49.0500  ddf
57  14.8015529      25.4000  ddf
58   8.8517629      20.3000  ddf
59  14.8709000      46.6000  def
60  15.7334886      50.3500  mdf
61   2.2038186      56.9500  hea
62   9.6995486      75.0500  def
63  13.0491586      77.5000  def
64  13.3168986      52.5000  def
65   9.9828929      42.7000  ddf
66  13.9131929      28.5500  ddf
67  13.8863843      19.5000  def
68  21.6792243      29.7000  def
69  11.7485814      63.2000  def
70  11.2045371      35.1000  mdf

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Помимо проблемы с фильтрацией набора данных, вы также можете позволить ggplot2 `geom_smooth 'выполнить добавление линий регрессии.

library(ggplot2)
library(dplyr)

newwnk <- wnkdata %>% 
  filter(type=="ddf" | type=="def")

gg <- ggplot(newwnk, aes(x = canopy.cover,  y = BA.ha)) +
  geom_point(aes(color = type)) + 
  # Regression line for types
  geom_smooth(aes(color = type), method = "lm", se = FALSE) +
  # Regression line for both types
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme(legend.position="right")

gg +
  scale_color_manual(breaks = c("ddf", "def"),
                     values = c(ddf = "red", def = "green"))+
  labs(title = "Correlation between Basal Area and Canopy Cover",
       x = "Canopy Cover(%)",
       y = "Basal Area(m2)")

Создано в 2020-03-26 представьте пакет (v0.3.0)

1 голос
/ 26 марта 2020

Ваша первая строка с поднабором неверна, вы либо используете подмножество, либо вам нужно использовать тип wnkdata $, попробуйте код ниже, и вы получите график. В противном случае укажите, что не работает?

newwnk<-subset(wnkdata,type=="ddf" | type=="def")
gg<-ggplot(newwnk,aes(y=BA.ha,x=canopy.cover,fill=type))+
geom_point(aes(color=type))+
theme(legend.position="right")

gg+geom_abline(intercept = 3.265, slope = 0.250,colour="red")+
geom_abline(intercept = 13.163473, slope = 0.004374,colour="green")+
geom_abline(intercept = 5.268, slope = 0.131,colour="black")+
scale_color_manual(breaks = c("ddf", "def"),
                 values=c("red", "green"))+
labs(title ="Correlation between Basal Area and Canopy Cover",
   x="Canopy Cover(%)",y="Basal Area(m2)")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...