ggplot2根据数据拆分颜色或相邻直方图

问题描述 投票:0回答:1

我如何创建直方图,其中 bin 在任意值之上和之下的颜色不同,而不需要引用 ggplot() 之外的环境?例如,像这样(但不需要引用外部变量

value.median
):

value = stats::rnorm(100, mean = 0, sd = 1)

df = data.frame(value) %>%
  dplyr::mutate(above.median = value > median(value))

value.median = median(value)

df %>%
  ggplot(aes(x = value, fill = above.median)) +
  geom_histogram(boundary = value.median, alpha = 0.5)

不像这样(重叠的bin):

df %>%
  ggplot(aes(x = value, fill = above.median)) +
  geom_histogram(boundary = 0, alpha = 0.5)

r ggplot2
1个回答
0
投票

您可以将

position = "identity"
添加到geom,而不是默认的(即
position = "stack"
),例如

library(tidyverse)

set.seed(123)

df <- data.frame(value = rnorm(100, mean = 0, sd = 1))

df %>%
  mutate(above_below_zero = ifelse(value < median(value), "negative", "positive")) %>%
  ggplot(aes(x = value, fill = above_below_zero)) +
  geom_histogram(alpha = 0.5, bins = 30, position = "identity") +
  scale_fill_manual(values = c("negative" = "firebrick3",
                               "positive" = "deepskyblue"))

创建于 2023-03-13 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.