如何将ggplot2绘图中的点改为黑白风格及指定形状(方形、圆形等)
ggplot2黑白配色及自定义点形状设置方案
数据如下:
你需要实现ggplot2绘图的黑白配色,同时为不同分组的点指定方形、圆形、实心方形、实心圆形这几种形状,以下是修正后的完整方案:
先修正原代码的几处错误:
- 拼写错误:
Horitculture应为Horticulture(实际按分组需求,直接绑定Speciesf即可) - 主题参数写法错误:
theme_bw()仅用于启用黑白主题,图例相关参数需放在单独的theme()函数中 - 纵轴标签表达式存在语法问题,已简化修正
实现需求的完整代码:
library(ggplot2) Horticulture$Species <- factor(Horticulture$Species) Horticulture$Speciesf <- factor(paste("ID", Horticulture$Species, sep = " ")) ggplot(Horticulture, aes(x = Time, y = growth, color = Speciesf, shape = Speciesf)) + geom_point(size = 3) + # 可根据需求调整点的大小 geom_errorbar(aes(ymin = growth - SE, ymax = growth + SE), width = 0.2) + # 调整误差棒宽度优化显示 geom_line() + xlab("Time [days]") + ylab(expression(paste("Growth [", day^-1, "]"))) + # 修正纵轴标签的表达式写法 scale_color_manual(values = rep("black", length(levels(Horticulture$Speciesf)))) + # 统一设置为黑色,实现黑白配色 scale_shape_manual(values = c(0, 1, 15, 16)) + # 对应分组的形状:空心方形、空心圆形、实心方形、实心圆形 theme_bw() + theme( legend.title = element_blank(), legend.position = c(0.85, 0.85) )
核心说明:
- 在
aes中同时绑定color和shape到Speciesf,确保每个分组对应唯一的形状标识 scale_color_manual通过重复"black"值,让所有点都显示为黑色,达成黑白配色要求scale_shape_manual的values向量顺序需与Speciesf的分组顺序匹配,若要调整形状与分组的对应关系,修改此向量顺序即可
内容的提问来源于stack exchange,提问作者Adelina
相关产品推荐
相关产品推荐

