问题声明
我的数据集包含100个组,每个组可以绘制成一条线,形状与响应变量相似。我想制作一个图表,其中100条曲线所占据的所有空间都变成一个阴影区域,因此更容易显示所有组中响应变量的变化。这也将使您可以清楚地看到x轴上的值或间隔,其中响应变量的变化较小(阴影阴影区域将变窄,因为大多数线会重叠)或变化较大。
代码示例
library(tidyverse)
library(ggplot2)
set.seed(1)
# Produce a similar table to the real one
example <- tibble(values = seq(0, 10, 0.1),
sine1 = sin(values + 0.2),
sine2 = sin(values - 0.2),
sine3 = sin(values + 0.4) + 0.2,
sine4 = sin(values - 0.4) - 0.2,
sine5 = sin(values - 0.4) + 0.2,
sine6 = sin(values - 0.2) + 0.4) %>%
pivot_longer(-values) # final format with 3 columns
# Create a line graph, where each line represents a different sine curve
graph1 <- ggplot(example, aes(x = values, y = value, col = name)) +
geom_line(size = 3, show.legend = FALSE, alpha = 0.5) +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))
graph1
问题
有没有一种方法可以解决这个问题……
答案 0 :(得分:2)
您只需要按单个时间单位分组并计算最小值/最大值。这使您可以绘制repository_ctx
:
geom_ribbon
如果您希望将功能区覆盖在原始图上,则可以执行以下操作:
example %>%
group_by(values) %>%
summarize(min = min(value), max = max(value)) %>%
ggplot() +
geom_ribbon(aes(x = values, ymin = min, ymax = max), size = 2,
fill = "#29c8e5", color = "black") +
theme_classic()
对于它的价值,我认为第一种选择在视觉上更引人注目。