如何在ggplot2中通过scale_shape_manual同时设置圆形与点形状?
在ggplot2中同时设置圆形和点形状的解决方法
问题出在scale_shape_manual的values参数不能混用命名形状(如"circle")和字符形状(如"."),这两种属于不同的形状指定类型,必须统一使用同一类型的取值。
解决方法1:使用整数形状编码
ggplot2的标准形状有对应的整数编码,你可以用整数同时指定圆形和点:
- 空心圆对应整数
1(和命名"circle"效果一致) - 实心点(和"."视觉效果一致)对应整数
20
修改后的代码:
data.frame( x = rnorm(10), y = rnorm(10), group = gl(2, 5, labels = c("circle", "period")) ) %>% ggplot(aes(x = x, y = y, shape = group)) + geom_point(size = 4) + scale_shape_manual(values = c(1, 20)) # 统一用整数编码
解决方法2:统一使用字符(可选)
如果偏好字符形式,圆形没有标准半角字符对应,可以用全角实心圆●和"."搭配:
data.frame( x = rnorm(10), y = rnorm(10), group = gl(2, 5, labels = c("circle", "period")) ) %>% ggplot(aes(x = x, y = y, shape = group)) + geom_point(size = 4) + scale_shape_manual(values = c("●", ".")) # 统一用字符
常用形状对应参考
- 空心圆:
1/ "circle" - 实心圆:
16/ "circle filled" - 小实心点:
20/ "point" - 句号字符:
.
内容的提问来源于stack exchange,提问作者Jeff Bezos
相关产品推荐
相关产品推荐

