如何将绘图上的连续变量映射为额外的图层?

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)

产量: