r - 在散点图中对当前数据点进行不同的着色
问题描述
我的数据表可以包含 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"
如下:
解决方案
你可以使用library(lubridate)
. 过去 10 天:
geom_point(aes(color = ifelse(date >= now()-days(10), "#F07D00", "#007d3c")))
推荐阅读
- python - 分享 Plotly dash 项目
- rust - 具有更高级别特征绑定参数的异步函数参数不起作用,一种类型比另一种更通用
- javascript - 隐藏块的按钮 - 卡片不起作用JS
- php - 如何使用 php 添加具有匹配合作伙伴名称的值
- java - 如何在 jar 文件中包含资源文件夹
- unix - 如何使用 awk 根据两个单独的字段数据过滤文件?
- python - 如何在网页中使用 Python 文件对数据库进行 crud 操作
- amazon-web-services - 看到 RDS 死锁错误,这可能与 IOPS 限制有关
- mysql - 提高从历史表中检索最后状态的性能
- javascript - 为什么 Vue 服务于一些基本网站而不是应用程序?