r - 将气泡颜色指定为变量限制了 ggplot 中的选择

标签 r ggplot2 legend

在 ggplot 中创建气泡图时,我在调整两个单独的美学选择时遇到问题,我确信这与我编码绘图的方式有关。在下图中,如果我根据这样的变量分配气泡的颜色:

V1<-rnorm(50)
V2<-rnorm(50)
V3<-c(rep("A",10),rep("B",10),rep("C",10),rep("D",10),rep("E",10))
V4<-V2+.1
V5<-c(rep("BF1",9),rep("BF2",11),rep("BF3",8),rep("BF4",12),rep("BF5",10))
DF<-data.frame(V1,V2,V3,V4,V5)

ggplot(DF,aes(x=V1,y=V2,size=V4,label=DF$V3,fill=V5),legend=FALSE)+
scale_y_continuous( limits = c(-3, 3))+
scale_x_continuous( limits = c(-3, 3))+
geom_point(color="black",shape=21,alpha=0.5)+
geom_text(size=2)+
theme_bw()+
scale_size(range = c(5, 20))+
scale_colour_brewer(palette="Blues")

enter image description here

我对这个情节的两个问题是

1-我想将默认调色板更改为不那么柔和的颜色。我认为使用scale_color_brewer参数会将颜色更改为“蓝色”,但显然情况并非如此。

2- 其次,V4 的图例现在有空圆圈,而如果没有 aes(fill=) 参数,圆圈就会被填充。我知道这是因为我的圆圈现在有很多颜色,但我更喜欢用实心(黑色)圆圈作为我的图例,而不是空心圆圈。有没有办法覆盖图例并使圆圈填充?

最佳答案

对于(1)使用scale_fill_brewer(palette="Blues")

对于(2),使用guides(size=guide_legend(override.aes = list(fill="black", alpha=1)))

<小时/>

更新:@BenBoker 在上面的评论中提出了一个很好的观点。我建议至少提高图例中的 alpha:添加到上面的 (2): , color=guide_legend(override.aes = list(alpha=0.9)) 或类似内容自然

关于r - 将气泡颜色指定为变量限制了 ggplot 中的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460908/

相关文章:

r - geom_ribbon不起作用-eval(expr,envir,enclos): object 'variable' not found中的错误

r - 如何在facet_wrap中正确使用labeller

python - Matplotlib:带有变量的图例条目

python - Matplotlib 1.3.0,图例行和文本不匹配

图中的 R 科学记数法

r - 为数据帧中的每个组创建长度为 n 的重复数

r - 在 R 中将 2 个数据集组合在一个图中

R 不召回内存中的对象

r - 如何在 `curvature` `ggplot2` 函数中传递单个 `geom_curve` 参数?

excel - powershell 无法向 Excel 图表添加多个图例条目(系列)