我有一个带有两个变量的数据框。第一个变量是日期。第二个变量是逻辑变量,它指定当天某条语句是对还是错(例如“那天下雨了。”)。
我想绘制该数据,以便曲线根据时间跨度中FALSE值的密度从1(对于TRUE)向0(对于FALSE)倾斜多少。即,彼此接近的FALSE值越多,下降越深。像这样:
样本数据:
dat <- read.table(textConnection("
Var1 Var2
2019-01-01 TRUE
2019-01-02 TRUE
2019-01-03 TRUE
2019-01-04 TRUE
2019-01-05 TRUE
2019-01-06 TRUE
2019-01-07 TRUE
2019-01-08 TRUE
2019-01-09 FALSE
2019-01-10 TRUE
2019-01-11 TRUE
2019-01-12 TRUE
2019-01-13 TRUE
2019-01-14 TRUE
2019-01-15 TRUE
2019-01-16 TRUE
2019-01-17 FALSE
2019-01-18 TRUE
2019-01-19 FALSE
2019-01-20 TRUE
2019-01-21 FALSE
2019-01-22 TRUE
2019-01-23 TRUE
2019-01-24 TRUE
2019-01-25 TRUE
2019-01-26 TRUE
2019-01-27 TRUE
2019-01-28 TRUE
2019-01-29 TRUE
2019-01-30 TRUE
2019-01-31 TRUE
2019-02-01 TRUE
2019-02-02 FALSE
2019-02-03 TRUE
2019-02-04 FALSE
2019-02-05 FALSE
2019-02-06 FALSE
2019-02-07 TRUE
2019-02-08 FALSE
2019-02-09 FALSE
2019-02-10 TRUE
2019-02-11 TRUE
2019-02-12 TRUE
2019-02-13 TRUE
2019-02-14 TRUE
2019-02-15 TRUE
2019-02-16 FALSE
2019-02-17 FALSE
2019-02-18 FALSE
2019-02-19 FALSE
2019-02-20 TRUE
2019-02-21 FALSE
2019-02-22 TRUE
2019-02-23 FALSE
2019-02-24 FALSE
2019-02-25 TRUE
2019-02-26 TRUE
2019-02-27 FALSE
2019-02-28 TRUE
2019-03-01 TRUE
"), header = TRUE, colClasses=c("Date", "logical"))
plot(dat)
答案 0 :(得分:2)
不确定您要寻找的是什么,但这是一个主意:
library(ggplot2)
ggplot(data = aggregate(Var2 ~ Var1, dat, FUN = mean), aes(x = Var1, y = Var2)) +
geom_smooth(se = FALSE, method = "loess") +
geom_point(data = dat, aes(x = Var1, y = as.integer(Var2)), shape=1)
答案 1 :(得分:1)