ggplot2指定形状的填充色与尺寸调整技术求助
问题描述
我有一份数据集,需要绘制可视化图形,当前使用R语言ggplot2编写的绘图代码如下:
##Data x <- c(10, 7.5, 5.5, 2.3, 3, 3.9, -2.5, -5, -9) y <- c(3, 1.25, .75, -1.27, -.6, .88, -7.5, -5, -4) z <- c("Good", "Good", "Good", "Average", "Average", "Average", "Bad", "Bad", "Bad") ##Dataframe md <- data.frame(x, y, z) ##Plotting plot <- print(md %>% ggplot(aes(x = x, y = y))+ geom_point(aes(shape = z))+ geom_smooth(method = lm, se = F, color = "black")+ labs(x = "X", y = "Y")+ theme_minimal()+ scale_shape_manual(values = c(24, 21, 25), breaks = c("Good", "Average", "Bad"))+ theme(text = element_text(family = "Segoe UI"), axis.line = element_line(size = .3, colour = "black", linetype = 1), axis.ticks = element_line(size = .3, color="black"), axis.ticks.length = unit(.1, "cm")))
注:我通过scale_shape_manual指定了三个与报告匹配的形状(24、21、25),无法修改形状。现需实现两个需求:
- 将这些形状填充为黑色;
- 统一增大所有形状的尺寸(尺寸一致且更大)。
我曾尝试使用scale_color_manual(values = c("#000000", "#000000", "#000000")),但未得到预期效果,恳请帮忙修正代码。
解决方案
你之前的尝试无效是因为选的形状(21、24、25)属于带填充区域的特殊形状:color参数仅控制形状的边框颜色,而内部填充色需要用fill参数来设置。要实现需求,只需做两处修改:
- 在
geom_point中添加fill = "black",直接将所有形状的填充色设为黑色; - 同时添加
size参数(比如设为4,可根据需求调整数值),统一增大形状尺寸。
修正后的完整代码如下:
##Data x <- c(10, 7.5, 5.5, 2.3, 3, 3.9, -2.5, -5, -9) y <- c(3, 1.25, .75, -1.27, -.6, .88, -7.5, -5, -4) z <- c("Good", "Good", "Good", "Average", "Average", "Average", "Bad", "Bad", "Bad") ##Dataframe md <- data.frame(x, y, z) ##Plotting plot <- md %>% ggplot(aes(x = x, y = y))+ geom_point(aes(shape = z), fill = "black", size = 4) + # 新增填充色和尺寸参数 geom_smooth(method = lm, se = F, color = "black")+ labs(x = "X", y = "Y")+ theme_minimal()+ scale_shape_manual(values = c(24, 21, 25), breaks = c("Good", "Average", "Bad"))+ theme(text = element_text(family = "Segoe UI"), axis.line = element_line(size = .3, colour = "black", linetype = 1), axis.ticks = element_line(size = .3, color="black"), axis.ticks.length = unit(.1, "cm")) print(plot)
另外,代码中把print()从赋值语句中抽离,结构会更清晰。
内容的提问来源于stack exchange,提问作者Tathagato
相关产品推荐
相关产品推荐

