如何在ggplot2的geom_jitter抖动散点图中为数据点添加黑色边框?
给ggplot2抖动散点图添加黑色边框的解决方法
问题出在你用的点形状默认是实心款(比如shape=16),这种形状只有color属性,没法单独设置边框。要实现带黑色边框的点,得用带填充色和边框的形状(比如shape=21-25这类),然后分开控制填充色和边框色:
修改后的代码
ggplot(data) + geom_jitter( mapping = aes(x = x, y = y, fill = Location), # 把color换成fill,用填充色区分组别 shape = 21, # 选带边框的圆形,shape=22是方形、23是菱形,按需更换 color = "black", # 固定边框为黑色,不要放在aes映射里 size = 2, # 调整点的大小 stroke = 0.8 # 调整边框粗细,数值越大边框越粗 ) + theme(legend.position="none") + labs(title="Distribution of Fauna Samples") + facet_wrap(~factor(Location, c("NORTH", "CENTRAL", "SOUTH", "WEST", "EAST")))
关键说明
- 之前方法无效的原因:你用的实心点没有
fill属性,所以scale_fill_manual()不会生效,color()直接把整个点的颜色设为组别色,自然看不到边框。 - 如果要自定义填充色,再加一行
scale_fill_manual(values = c("NORTH" = "red", "CENTRAL" = "blue", ...)),把对应组别的颜色填进去就行。 stroke是专门控制带边框形状的边框粗细参数,可根据视觉效果调整数值。
内容的提问来源于stack exchange,提问作者pina
相关产品推荐
相关产品推荐

