如何在R ggplot2中绘制3个数据帧
我有3个数据帧: 主管(df1) 主管(df2) 主管(df3) 我试着用三个df绘制一个图:df1、df2和df3 图df1如何在R ggplot2中绘制3个数据帧,r,dataframe,ggplot2,R,Dataframe,Ggplot2,我有3个数据帧: 主管(df1) 主管(df2) 主管(df3) 我试着用三个df绘制一个图:df1、df2和df3 图df1 P <- ggplot(df1, aes(x = NMDS1, y = NMDS2)) + geom_point(aes(NMDS1, NMDS2, color = Station), size=4) + theme_bw() 我必须调整比例吗?如何在一个绘图中绘制所有3个df 谢谢事实上,您的问题是,您需要为两组不同的点使用两个色阶 这个问题的解决方案涉及到
P <- ggplot(df1, aes(x = NMDS1, y = NMDS2)) + geom_point(aes(NMDS1, NMDS2, color = Station), size=4) + theme_bw()
我必须调整比例吗?如何在一个绘图中绘制所有3个df
谢谢事实上,您的问题是,您需要为两组不同的点使用两个色阶 这个问题的解决方案涉及到其他软件包,如
ggnewscale
,但这里更简单的方法是使用具有较大点填充颜色的形状shape=21
非常适合您的大点数。这样,您可以使用桩号的填充比例和族的颜色比例。请记住,如果要更改较大点的颜色,则需要使用scale\u fill\u xxx
而不是scale\u color\u xxx
库(ggplot2)
图书馆(ggrepel)
ggplot(df1,aes(x=NMDS1,y=NMDS2))+
几何点(aes(填充=桩号),尺寸=5,形状=21,颜色=“00000000”)+
geom_段(aes(x=0,xend=NMDS1,y=0,yend=NMDS2),数据=df2,
箭头=箭头(长度=单位(0.25,“厘米”),
color=“grey10”,lwd=0.3)+
几何文本排斥(aes(标签=环境变量),数据=df2,
cex=4,direction=“both”,segment.size=0.25)+
几何点(aes(颜色=系列),数据=df3,尺寸=2,形状=20)+
主题_bw()
非常感谢,这正是我需要的,谢谢!!!!
NMDS1 NMDS2 env.pvals env.variables
Deep 0.23990125 -0.3194394 0.5384615 Deep
Salinity -0.18454375 -0.1849230 1.0000000 Salinity
Temp -0.02935085 0.1953837 1.0000000 Temp
OD 0.27043891 -0.3425079 0.2967033 OD
pH 0.34483843 -0.1953211 0.6043956 pH
DBO5 -0.31011556 0.1377326 1.0000000 DBO5
NMDS1 NMDS2 spp_pvals Family
Otu_3503 -0.13102909 0.5044264 0.009 Desulfobacteraceae
Otu_3887 -0.09181908 0.5502878 0.004 Desulfobacteraceae
Otu_4287 -0.08140270 0.3914792 0.031 Desulfobacteraceae
Otu_4804 -0.10993229 0.5427913 0.005 Desulfobacteraceae
Otu_4807 0.21147428 -0.1891993 0.198 Desulfobulbaceae
Otu_5108 -0.45920996 0.0493874 0.012 Desulfatiglans
P <- ggplot(df1, aes(x = NMDS1, y = NMDS2)) + geom_point(aes(NMDS1, NMDS2, color = Station), size=4) + theme_bw()
P <- P + geom_segment(data = df2, aes(x = 0, xend = NMDS1, y = 0, yend = NMDS2), arrow = arrow(length = unit(0.25, "cm")), colour = "grey10", lwd = 0.3) +
ggrepel::geom_text_repel(data = df2, aes(x = NMDS1, y = NMDS2, label = env.variables), cex = 4, direction = "both", segment.size = 0.25)
ggplot(df3, aes(x = NMDS1, y = NMDS2)) + geom_point(aes(NMDS1, NMDS2, color = Family), size=2, shape=20, alpha=0.4) + theme_bw()