我正在绘制一些多变量数据,其中有 3 个离散变量和一个连续变量。我希望每个点的大小代表变化的幅度而不是实际的数值。我认为我可以通过使用绝对值来实现这一点。考虑到这一点,我希望负值用蓝色表示,正值用红色表示,零值用白色表示。比制作一个图例看起来像这样的情节:
我想出了一个与我的数据集具有相同结构的虚拟数据集,以获得一个可重现的示例:
a1 <- c(-2, 2, 1, 0, 0.5, -0.5)
a2 <- c(-2, -2, -1.5, 2, 1, 0)
a3 <- c(1.5, 2, 1, 2, 0.5, 0)
a4 <- c(2, 0.5, 0, 1, -1.5, 0.5)
cond1 <- c("A", "B", "A", "B", "A", "B")
cond2 <- c("L", "L", "H", "H", "S", "S")
df <- data.frame(cond1, cond2, a1, a2, a3, a4)
#some data munging
df <- df %>%
pivot_longer(names_to = "animal",
values_to = "FC",
cols = c(a1:a4)) %>%
mutate(across(c("cond1", "cond2", "animal"), …Run Code Online (Sandbox Code Playgroud)