如何在GGally的ggparcoord中单独修改点大小(与连线宽度分离)
解决平行坐标图点大小与连线宽度分离的问题
问题核心是ggparcoord默认会把size映射同时应用到点和连线上,要分开设置的话,用工具自带参数+手动添加点图层就能搞定:
- 第一步:在
ggparcoord里用lineSize参数直接指定连线宽度,同时关闭自动画点(showPoints = FALSE) - 第二步:手动添加
geom_point图层,指定点的大小,同时继承物种的形状映射
示例代码:
ggparcoord( iris, columns = 1:4, groupColumn = 5, scale = "std", showPoints = FALSE, # 关闭自动生成的点 mapping = ggplot2::aes(shape = factor(Species)), lineSize = 0.5 # 设置连线宽度 ) + ggplot2::geom_point(aes(shape = factor(Species)), size = 2) # 自定义点大小
如果不想手动加图层,也可以直接修改自动生成的图层参数:
# 生成基础图 p <- ggparcoord( iris, columns = 1:4, groupColumn = 5, scale = "std", showPoints = TRUE, mapping = ggplot2::aes(shape = factor(Species)) ) # 修改连线宽度(第一个图层是线) p$layers[[1]]$aes_params$size <- 0.5 # 修改点大小(第二个图层是点) p$layers[[2]]$aes_params$size <- 2 # 输出图形 print(p)
两种方法都能实现点大小和连线宽度的独立设置,第一种更直观可控,推荐使用。
内容的提问来源于stack exchange,提问作者Godrim
相关产品推荐
相关产品推荐

