如何修改R ggplot代码绘制分Block三条折线并自定义图例
修改后可直接运行的完整代码
# 先将Block列转为因子类型,确保分组绘制逻辑正确 Running_Accuracy_Across_Addition$Block <- as.factor(Running_Accuracy_Across_Addition$Block) Running_Accuracy_Across_Addition %>% ggplot(mapping = aes(x = Trials, y = Accuracy, color = Block)) + scale_x_discrete(name = "试验次数", limits = c("First Ten", "Second Ten", "Third Ten", "Fourth Ten"), labels = c("First Ten" = "5", "Second Ten" = "15", "Third Ten" = "25", "Fourth Ten" = "35")) + scale_y_continuous(name = "10次试验中加法反应的正确率", limits = c(0,1.0)) + # 这里新增scale_color_*系列函数自定义三条折线的配色,同时可修改图例标签 scale_color_discrete( name = "实验区块", # 自定义图例标题 labels = c("区块1", "区块2", "区块3") # 按你实际的Block取值修改对应标签 ) + geom_line(linewidth = 1) + # 适当加粗折线,更易区分 geom_point(alpha = 0.7, size = 2) + # 调大标记点,提升辨识度 theme( panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), axis.line = element_line(colour = "black"), text = element_text(family="Times New Roman", size = 12), # 以下是图例相关的自定义调整 legend.position = "top", # 可选值:top/bottom/left/right/none(隐藏图例) legend.title = element_text(face = "bold"), # 图例标题加粗 legend.background = element_rect(fill = "transparent", color = NA), # 图例背景透明 legend.box.background = element_rect(color = "black", fill = "transparent") # 可选:给图例加外边框 ) + labs( title = "可用时间减少时加法反应准确率的变化", x = "试验次数", y = "10次试验中加法反应的正确率" )
修改说明
- 针对三条不同Block对应折线的绘制需求:新增了将
Block列转为因子类型的预处理步骤,避免因数据类型为数值/字符导致的分组混乱;同时适当调粗折线宽度、增大点的尺寸,提升三条线的辨识度。 - 针对图例调整需求:
- 通过
scale_color_discrete自定义图例的标题、每个分类对应的展示标签,也可以替换为scale_color_manual(values = c("red","blue","green"))自定义三条折线的配色 - 在
theme中新增了图例位置、格式的配置项,你可以根据自己的排版需求调整对应参数,如果不需要展示图例,直接把legend.position设为"none"即可。
- 通过
内容的提问来源于stack exchange,提问作者Olivia
相关产品推荐
相关产品推荐

