首页 > 解决方案 > R:ggplot 和使用颜色来填补空白

问题描述

我有一个有差距的时间序列数据。我使用了多个插补包来填补空白。

通过ggplot,我生成了两个图。我想为绘图的修改部分使用不同的颜色以获得更好的可视化效果。

有间隙的原始图

ggplot(data = df_final, mapping = aes(x = day_of_year, y = bookings)) +
  geom_line()

在此处输入图像描述

填充空白的绘图

ggplot(data = df_result, mapping = aes(x = day_of_year, y = bookings_imputed)) +
  geom_line()

在此处输入图像描述

df_final&df_result分别是用于原始和空白填充图的数据框。

标签: rdataframeggplot2

解决方案


你可以尝试这样的事情:

require(tidyverse)

df %>% 
  mutate(imputedValues = imputeTS::na.random(values), 
         type = ifelse(is.na(values) == TRUE, "impute", "real")) %>% 
  gather(var, val, -time, -type) %>%
  ggplot(aes(time, val, group = var, color = var)) + 
  geom_line()

输出: 在此处输入图像描述

样本数据:

df <- data.frame(time = 1:10, 
                 values = rep(c(1, 2, 3, NA, 5), 2))

推荐阅读