向ggplot scatterplot添加更多因子,而无需使用两个数据帧添加行

时间:2017-12-07 21:39:45

标签: r ggplot2

我正在尝试在ggplot2中为两个变量(两个物种)的R创建一个散点图,颜色不同,并且在此图中显示两个物种内的差异基于不同形状的季节。我运行以下代码时遇到了这个问题:

Species<- c('1','1','1','1','1','1','1','1','1','1','2','2','2','2','2','2','2','2','2','2')
Age<-c('I','M','M','I','I','M','I','M','I','I','I','M','I','M','M','I','I','I','I','M')
SA<-c(100,90,180,77,65,73,85,87,84,84,82,77,74,65,62,98,120,180,190,100)
V<-c(40,42,45,55,51,62,73,21,41,61,51,92,54,61,65,32,41,55,56,53)
PWstats<-data.frame(Species,Age,SA,V)

PlotSpeciescheck <- ggplot(PWstats,aes(x=log(V), y=log(SA), color=Species, shape=Age)) +
geom_point() +
geom_smooth(method=lm) + 
labs(x=expression("Volume ("*cm^3*")"), 
     y=expression("Surface Area ("*cm^2*")")) + 
theme(legend.text = element_text(face="italic"))  

它为每个因子创建多条线(物种1和第1季,第2类和第1季,第2类和第1季等等)。我只希望这些线代表两个物种,并且具有季节性差异作为补充可视化。

请注意,有四条线(一条用于物种1和一号年龄,物种2年龄I,物种1年龄M,物种2年龄M),但我只想要两条线(物种1和物种2)但仍然有不同的形状代表不同的年龄阶层。

这有什么办法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

顶级造型美感让你烦恼不已。由于您只希望将其应用于点,只需将其专门移动到该层

即可
PlotSpeciescheck <- ggplot(PWstats,aes(x=log(V), y=log(SA), color=Species)) +
  geom_point(aes(shape=Age)) +
  geom_smooth(method=lm) + 
  labs(x=expression("Volume ("*cm^3*")"), 
       y=expression("Surface Area ("*cm^2*")")) + 
  theme(legend.text = element_text(face="italic")) 

enter image description here