如何将绘图上的连续变量映射为额外的图层?
How to map a continuous variable on a plot as an extra layer?
我正在尝试在我的绘图上映射一个连续变量。也许通过颜色渐变。但我还没有成功。对我的情节添加 "gamma" 有什么建议吗?我还想指出每个类别(2 个级别)在地块上的位置,这在单个地块上是否可行?
plot_2 <- ggplot(data=states_2)+ ggtitle("TBD ")+
xlab("q")+ylab("r")+ geom_point(aes(x=Q , y= Cor, color=metric))+geom_smooth (aes(x=Q, y=Cor,
color=metric,group=(metric)),
method="lm", se=FALSE)
Cor metric K Q Category gamma
0.33 APD 2s 0.4mu 64spp -0.25282382
0.23 APD 2s 0.4mu 64spp -0.653438937
0.21 APD 2s 0.4mu 64spp 0.799639202
0.14 APD 2s 0.4mu 64spp 1.039215902
0.37 APD 2s 0.4mu 64spp 0.207669854
好吧,正如评论所指出的那样,您没有给我们很多继续的机会(您确实需要像 bdemarest 提到的那样解决您的问题)。所以我创建了一些类似的假数据(据我所知)并这样做了。将 Gamma 带入此图片的最简单方法是调整点的大小。
# fake some data into states_2
#
# Cor metric K Q Category gamma
# 0.33 APD 2s 0.4mu 64spp -0.25282382
# 0.23 APD 2s 0.4mu 64spp -0.653438937
# 0.21 APD 2s 0.4mu 64spp 0.799639202
# 0.14 APD 2s 0.4mu 64spp 1.039215902
# 0.37 APD 2s 0.4mu 64spp 0.207669854
#
n <- 100
cor <- rnorm(n,0.25)
me <- sample(c("APD","APE","APF"),n,replace=T)
kk <- sample(c("2s","3t","4u"),n,replace=T)
qq <- sample(c("0.2mu","0.3mu","0.4mu","0.5mu","0.6mu"),n,replace=T)
ca <- sample(c("64spp","80spp"),n,replace=T)
ga <- rnorm(n,0.5,2)
states_2 <- data.frame(Cor=cor,metric=me,K=kk,Q=qq,Category=ca,gamma=ga)
# plot it
plot_2 <- ggplot(data=states_2)+
ggtitle("TBD ")+xlab("q")+ylab("cor")+
geom_point(aes(x=Q , y= Cor, color=metric, size=gamma, alpha=0.5))+
geom_smooth( aes(x=Q,y=Cor, color=metric,group=(metric)), method="lm",se=FALSE)+
guides(alpha=F)
print(plot_2)
产量:
我正在尝试在我的绘图上映射一个连续变量。也许通过颜色渐变。但我还没有成功。对我的情节添加 "gamma" 有什么建议吗?我还想指出每个类别(2 个级别)在地块上的位置,这在单个地块上是否可行?
plot_2 <- ggplot(data=states_2)+ ggtitle("TBD ")+
xlab("q")+ylab("r")+ geom_point(aes(x=Q , y= Cor, color=metric))+geom_smooth (aes(x=Q, y=Cor,
color=metric,group=(metric)),
method="lm", se=FALSE)
Cor metric K Q Category gamma
0.33 APD 2s 0.4mu 64spp -0.25282382
0.23 APD 2s 0.4mu 64spp -0.653438937
0.21 APD 2s 0.4mu 64spp 0.799639202
0.14 APD 2s 0.4mu 64spp 1.039215902
0.37 APD 2s 0.4mu 64spp 0.207669854
好吧,正如评论所指出的那样,您没有给我们很多继续的机会(您确实需要像 bdemarest 提到的那样解决您的问题)。所以我创建了一些类似的假数据(据我所知)并这样做了。将 Gamma 带入此图片的最简单方法是调整点的大小。
# fake some data into states_2
#
# Cor metric K Q Category gamma
# 0.33 APD 2s 0.4mu 64spp -0.25282382
# 0.23 APD 2s 0.4mu 64spp -0.653438937
# 0.21 APD 2s 0.4mu 64spp 0.799639202
# 0.14 APD 2s 0.4mu 64spp 1.039215902
# 0.37 APD 2s 0.4mu 64spp 0.207669854
#
n <- 100
cor <- rnorm(n,0.25)
me <- sample(c("APD","APE","APF"),n,replace=T)
kk <- sample(c("2s","3t","4u"),n,replace=T)
qq <- sample(c("0.2mu","0.3mu","0.4mu","0.5mu","0.6mu"),n,replace=T)
ca <- sample(c("64spp","80spp"),n,replace=T)
ga <- rnorm(n,0.5,2)
states_2 <- data.frame(Cor=cor,metric=me,K=kk,Q=qq,Category=ca,gamma=ga)
# plot it
plot_2 <- ggplot(data=states_2)+
ggtitle("TBD ")+xlab("q")+ylab("cor")+
geom_point(aes(x=Q , y= Cor, color=metric, size=gamma, alpha=0.5))+
geom_smooth( aes(x=Q,y=Cor, color=metric,group=(metric)), method="lm",se=FALSE)+
guides(alpha=F)
print(plot_2)
产量: