如何在ggplot2的geom_point散点图中通过点形状区分不同分组
当然可以实现,只需要将你的分类变量TimeKD映射到geom_point的shape审美属性即可,修改方案如下:
基础自动分配形状版本
直接在geom_point的美学映射参数中新增shape = TimeKD即可,ggplot2会自动为A、B两类分配不同的默认点形状:
ggplot(df, aes(x = Gene, y = Log2FC, group=TimeKD)) + geom_point(aes(color = -Adj.P.Value, size = Mean.Count, shape = TimeKD), alpha = 0.5)+ coord_flip() + scale_colour_gradientn( colours = grDevices::colorRampPalette(c("black", "cyan", "violet"))(n = 200), values = NULL, space = "Lab", na.value = "grey50", guide = "colourbar", aesthetics = "colour" )
自定义指定形状版本
如果想要手动指定两类对应的形状,可以额外添加scale_shape_manual()配置,以下示例将A类设为实心圆形,B类设为实心三角形:
ggplot(df, aes(x = Gene, y = Log2FC, group=TimeKD)) + geom_point(aes(color = -Adj.P.Value, size = Mean.Count, shape = TimeKD), alpha = 0.5)+ coord_flip() + scale_colour_gradientn( colours = grDevices::colorRampPalette(c("black", "cyan", "violet"))(n = 200), values = NULL, space = "Lab", na.value = "grey50", guide = "colourbar", aesthetics = "colour" ) + # 自定义形状:16对应实心圆,17对应实心三角形,可按需替换编码 scale_shape_manual(values = c("A" = 16, "B" = 17))
如果需要调整为其他形状,替换scale_shape_manual的values参数里的数字编码即可,常用实心形状编码包括15(实心方块)、18(实心菱形)等。
内容的提问来源于stack exchange,提问作者Krutik
相关产品推荐
相关产品推荐

