如何根据条件为哑铃图中的点着色?
How to colour points in a dumbbell plot based on condition?
我正在尝试根据 x_diff
值是正数还是负数来为哑铃图中的 xend
点着色。本质上,如果 x_diff
值为正,我希望 xend
点为绿色,如果为负,则为红色。我试图在我的数据中定义这个,但是当我尝试 运行 通过 ggplot
这个我现在编写代码的方式时,我没有被卡住。有没有人有任何可能有帮助的建议?示例代码如下。
谢谢。
library(tidyverse)
library(ggalt)
data <- tibble(
id = c(paste0("player", 1:5)),
x1 = c(0.219, 0.169, 0.103, 0.193, 0.345),
x2 = c(0.258, -0.030, 0.071, 0.315, 0.223),
x_diff = x2 - x1,
point_colour = ifelse(x_diff > 0, "#046A38", "#C60C30")
)
plot <- data %>%
ggplot() +
geom_dumbbell(aes(x = x1, xend = x2, y = id), size = 2, colour = "#E3E2E1",
size_x = 4, size_xend = 4, colour_xend = data$x_diff) +
theme_classic()
plot
可能不是最优雅的解决方案,但您可以重叠 geom_point()
,并根据您的喜好为其着色:
data %>%
ggplot() +
geom_dumbbell(aes(x = x1, xend = x2, y = id),
size = 2, colour = "#E3E2E1",size_x = 4, size_xend = 4) +
geom_point(aes(x = x2, y = id), color = data$point_colour, size = 4) +
theme_classic()
我正在尝试根据 x_diff
值是正数还是负数来为哑铃图中的 xend
点着色。本质上,如果 x_diff
值为正,我希望 xend
点为绿色,如果为负,则为红色。我试图在我的数据中定义这个,但是当我尝试 运行 通过 ggplot
这个我现在编写代码的方式时,我没有被卡住。有没有人有任何可能有帮助的建议?示例代码如下。
谢谢。
library(tidyverse)
library(ggalt)
data <- tibble(
id = c(paste0("player", 1:5)),
x1 = c(0.219, 0.169, 0.103, 0.193, 0.345),
x2 = c(0.258, -0.030, 0.071, 0.315, 0.223),
x_diff = x2 - x1,
point_colour = ifelse(x_diff > 0, "#046A38", "#C60C30")
)
plot <- data %>%
ggplot() +
geom_dumbbell(aes(x = x1, xend = x2, y = id), size = 2, colour = "#E3E2E1",
size_x = 4, size_xend = 4, colour_xend = data$x_diff) +
theme_classic()
plot
可能不是最优雅的解决方案,但您可以重叠 geom_point()
,并根据您的喜好为其着色:
data %>%
ggplot() +
geom_dumbbell(aes(x = x1, xend = x2, y = id),
size = 2, colour = "#E3E2E1",size_x = 4, size_xend = 4) +
geom_point(aes(x = x2, y = id), color = data$point_colour, size = 4) +
theme_classic()