1

我正在尝试绘制一条曲线(使用 geom_area),其中曲线下的面积根据第三个变量而变化。

这是一个可重现的示例:

data <- data.frame(
  time = seq(1,10),
  activity = c(43.59675 ,18.15803 ,26.59981 ,72.64358 ,20.68794, 86.13841, 47.64718, 83.94334 ,32.33138, 81.70798),
  space = c(1 ,3 ,3 ,1 ,2 ,3 ,2 ,2 ,3 ,1)
)

data$space <- as.character(data$space)
ggplot(data,
       aes (x = time, y = activity)) + geom_area()

结果在这里:

在此处输入图像描述

我想要的是根据空间变量为曲线下的这个黑色区域着色。尝试类似下面的代码会给出一个非常奇怪的曲线(在这里查看:

在此处输入图像描述

ggplot(data,aes (x = time, y = activity, fill = space)) + geom_area()

有什么帮助吗?

4

1 回答 1

2

首先你需要一些数据操作!然后你可以使用geom_ribbon().

data$space <- as.factor(data$space)
data$time <- as.factor(data$time)
data$df <- as.factor(data$time)

data2 <- data.frame(time=data$time[-1], activity=data$activity[-1], space=data$space[-10], df=data$df[-10])
data3 <- rbind(data,data2)

ggplot(data3, aes (x = time, ymax = activity, ymin=0, group=df, fill=space)) + 
  geom_ribbon()

在此处输入图像描述

于 2021-04-07T10:42:40.587 回答