我已经使用 raincloudplots 和 mtcars 数据集成功创建了雨云图。数组 1 是变量 mpg,数组 2 是每个 ID 内的 qsec。我还创建了一个变量 $Direction,如果 mpg 大于 qsec,则为 1;如果小于 qsec,则为 2。这样,如果使用 ifelse 代码使线条处于向上或向下方向,我可以使用此变量对线条进行不同的颜色。这个变量是正确的,我在 Excel 中仔细检查了它,但线条没有相应地着色。我已在此处附上代码,请告诉我是否可以以某种方式使其更容易理解。谢谢!
library(raincloudplots)
mtcars <- data_1x1(
array_1 = mtcars$mpg,
array_2 = mtcars$qsec,
jit_distance = .09,
jit_seed = 321)
head(mtcars)
tail(mtcars)
raincloud_2 <- raincloud_1x1_repmes(
data = mtcars,
colors = (c('#F6C337', '#68D2D5')),
fills = (c('#F6C337', '#68D2D5')),
line_alpha = .3,
line_color= ifelse(mtcars$Direction > 1, 'black', 'gray'),
size = 1,
alpha = .6,
align_clouds = FALSE) +
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
二手
line_color= ifelse(mtcars$方向 > 1, '黑色', '灰色')
期望向下的方向线是黑色的,但我得到了各种各样的彩色线。
我认为没有一个选项可以为函数本身内的线条着色。我认为您需要修改生成的 ggplot 对象:
library(raincloudplots)
library(tidyverse)
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) +
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$data <- raincloud_2$data %>%
mutate(Direction = ifelse(last(y_axis) - first(y_axis) > 0, "up", "down"),
.by = id)
raincloud_2$layers[[3]]$aes_params$colour <- NULL
raincloud_2$layers[[3]]$mapping <- aes(jit, y_axis, group = id,
color = Direction)
raincloud_2 + scale_color_manual(values = c(up = "gray", down = "black"))