Rain Cloud Plot中基于Direction变量的线条颜色设置异常求助
问题排查与解决方案
问题原因
你直接通过line_color=ifelse(mtcars$Direction>1,'black','gray')给线条传颜色向量时,由于data_1x1生成的是长格式数据(每个配对的两个指标各占一行),颜色向量会被应用到每个数据点而非配对连线,导致线条颜色混乱。raincloud_1x1_repmes函数的line_color参数默认是设置所有连线的统一颜色,无法直接按配对分组指定颜色,需要通过美学映射(aes)来实现按Direction分组着色。
修正代码
library(raincloudplots) # 生成配对数据 mtcars <- data_1x1( array_1 = mtcars$mpg, array_2 = mtcars$qsec, jit_distance = .09, jit_seed = 321) # 绘制带分组颜色的雨云图 raincloud_2 <- raincloud_1x1_repmes( data = mtcars, colors = c('#F6C337', '#68D2D5'), fills = c('#F6C337', '#68D2D5'), line_alpha = .3, size = 1, alpha = .6, align_clouds = FALSE) + # 按Direction映射线条颜色 aes(color = factor(Direction)) + # 指定对应颜色:Direction=1(上升)灰色,Direction=2(下降)黑色 scale_color_manual(values = c("1" = "gray", "2" = "black")) + scale_x_continuous(breaks=c(1,2), labels=c("mpg", "qsec"), limits=c(0, 3)) + scale_y_continuous(breaks=c(1,5,10,15,20,25), limits=c(0, 25)) + ylab("Value") + xlab("")+ theme_classic() raincloud_2
说明
- 通过
aes(color = factor(Direction))将线条颜色与Direction变量绑定,让每个配对的连线根据自身Direction值选择颜色。 scale_color_manual明确指定每个Direction对应的颜色,确保符合你的需求:上升方向(Direction=1)用灰色,下降方向(Direction=2)用黑色。
内容的提问来源于stack exchange,提问作者Christopher Colvin
相关产品推荐
相关产品推荐

