首页 > 解决方案 > 在散点图中对当前数据点进行不同的着色

问题描述

我的数据表可以包含 2020 年的每日数据或每周数据。我使用回归线创建散点图,如下所示:

##########
## DAY: ##
##########
dt.day <- data.table(date = seq(as.Date('2020-01-01'), by = '1 day', length.out = 365),
                     DE = rnorm(365, 4, 1), Austria = rnorm(365, 10, 2), 
                     Czechia = rnorm(365, 1, 2), check.names = FALSE)

## Linear regression: ##
regLine <- lm(DE ~ Austria, data = dt.day)

## PLOT: ##
p <- ggplot(data = dt.day, aes(x = Austria, y = DE, 
                               text = paste("Date: ", date, '\n',
                                            "Austria: ", Austria, "GWh/h", '\n',
                                            "DE: ", DE, "\u20ac/MWh"),
                               group = 1)
     ) +
     geom_point(color = "#419F44") +
     geom_smooth(method = "lm", se = FALSE, color = "#007d3c") +
     theme_classic() +
     theme(legend.position = "none") +
     theme(panel.background = element_blank()) +
     xlab("Austria") +
     ylab("DE")

# Correlation plot converting from ggplot to plotly: #
AUSTRIA <- plotly::ggplotly(p, tooltip = "text")


###########
## WEEK: ##
###########
dt.week <- data.table(date = seq(as.Date('2020-01-01'), by = '7 day', length.out = 53),
                      Germany = rnorm(53, 4, 1), Austria = rnorm(53, 10, 2), 
                      Czechia = rnorm(53, 1, 2), check.names = FALSE)

每日数据的图表如下所示:

在此处输入图像描述

我想用不同的颜色()绘制我的数据表的最后 10 天(不管它包含多少数据,因为它只能是每天 1 月到 4 月的数据"#F07D00")。每周数据表的绘图以类似方式绘制。我想在过去的 4 周内使用不同的颜色。

我还有一个问题:

如果我有一个每天都有每小时条目的数据表(即每天 24 个),那么过去 2 天的积分将如何工作?第 1 列 ( date) 的格式"POSIXct" "POSIXt"如下:

在此处输入图像描述

标签: rggplot2colorsscatter-plot

解决方案


你可以使用library(lubridate). 过去 10 天:

 geom_point(aes(color = ifelse(date >= now()-days(10), "#F07D00", "#007d3c"))) 

推荐阅读