以下是我的数据框WetNmaPso
Saison Site Category NbWB_m2 NbWP_m2 mean_PercentCover
2 Wet SW CCA_Nma 19.3333333 7.000000 0.072833333
4 Wet SW CCA_Pso 0.8333333 0.000000 0.002500000
18 Wet BY CCA_Nma 0.0000000 2.666667 0.001166667
20 Wet BY CCA_Pso 3.1666667 1.333333 0.007666667
34 Wet WF CCA_Nma 3.5000000 3.333333 0.010333333
36 Wet WF CCA_Pso 0.0000000 0.000000 0.000000000
50 Wet MP CCA_Nma 0.1666667 0.500000 0.004666667
52 Wet MP CCA_Pso 0.0000000 0.000000 0.000000000
66 Wet PK CCA_Nma 0.0000000 0.000000 0.000500000
68 Wet PK CCA_Pso 20.8333333 2.000000 0.063000000
82 Wet DB CCA_Nma 0.0000000 0.000000 0.000000000
84 Wet DB CCA_Pso 2.8333333 8.333333 0.017833333
我们的想法是针对每个类别针对NbWB_m2
绘制mean_PercentCover
,为每个类别使用不同的颜色,为每个网站使用不同的符号。
这是脚本:
y <-WetNmaPso$NbWB_m2
x <-WetNmaPso$mean_PercentCover
library(ggplot2)
PlotNmaPso<-ggplot(WetNmaPso,aes(x=x,y=y))+
stat_smooth(method="lm",
aes(color=Category))+
geom_point(aes(color=Category,shape=Site))
现在是我的问题。如何为每个类别制作单独的图并保持正确的颜色和正确的符号?我曾试图使用face_wrap但不知何故它混淆了我的数据点。这是我一直在努力做的事情:
Individual_plots<-PlotNmaPso + facet_wrap(~Category)
结果图显示了每个类别的两个单独的图表,这些图表很好,但数据点不正确,并且符号在两个类别之间混合。 我尝试了不同的东西,但从未得到预期的结果。
非常感谢任何帮助!
答案 0 :(得分:0)
我认为这些点未正确显示,因为您需要在geom_point()
函数中插入x和y。
例如:
ggplot(WetNmaPso) + geom_point(data=WetNmaPso,aes(y=NbWB_m2,x=mean_PercentCover,color=Category,shape=Site,size=7)) + stat_smooth(method="lm",aes(y=NbWB_m2,x=mean_PercentCover,color=Category)) + facet_grid(. ~ Category)
在Excel中使用散点图获得相同的结果,分别绘制每个类别。
答案 1 :(得分:0)
以下代码段
ggplot(WetNmaPso, aes(x=NbWB_m2, y=mean_PercentCover, color=factor(Category))) +
geom_point(aes(shape=factor(Site)), size=5) +
stat_smooth(method="lm", size=1.2)+facet_wrap(~Category) +
scale_shape_discrete(name="Site") +
scale_color_discrete(name="Category")
生成这个,看起来像你想要的那样:
注意:
ggplot(WetNmaPso,...)
将WetNmaPso设置为默认值
数据集。从那时起aes(...)
内的所有引用都将是
WetNmaPso的列,除非您在a中明确指定新数据集
未来通话(例如geom_point(data=some.other.df,...)
。color=factor(Category)
通话中设置ggplot(...)
会导致此问题
分组以适用于之后的所有内容,除非明确说明
改变。scale_*
)仅更改图例标题。