r - 特定值后的 R geom_ribbon
问题描述
我试图找到一种在特定值之后为背景着色的方法。
在此示例中,我想为值后面的空格着色5
(此处显示为垂直线)。
#
library(lme4)
library(tidyverse)
data("sleepstudy")
#
sleepstudy = sleepstudy %>% mutate(days = ifelse(Days > 5, 1, 0))
#
m1 = sleepstudy %>% group_by(Days, days) %>% summarise(m = mean(Reaction))
m1
m1 %>% ggplot(aes(Days, m)) +
geom_point() +
geom_vline(xintercept = 6) +
theme_minimal()
我想实现这样的目标
但是,当我使用以下行时,我收到一条错误消息。
m1 %>% ggplot(aes(Days, m)) +
geom_point() +
geom_vline(xintercept = 6) +
theme_minimal() +
geom_ribbon(data = m1, aes(x = c(6,9), ymin=0, ymax = 400), fill = 'khaki', alpha = 0.2)
解决方案
也许以下内容可以满足问题的要求。
首先,如果要绘制误差线,则必须更改数据准备代码。
- 无需计算额外的变量
days
来判断Days
是否大于6
。 - 必须计算标准误差。
这只能在一个管道中完成。
library(lme4)
library(tidyverse)
data("sleepstudy")
m1 <- sleepstudy %>%
group_by(Days) %>%
summarise(m = mean(Reaction),
s = sd(Reaction))
现在剧情。
- 我改变了几何图形的顺序,在功能区上有点、误差线和垂直线。
- 我也把
alpha
等级提高到了0.30
。 - 审美没必要重置
x
,剧情一开始就设置好了。
正是后一点导致了代码错误。
错误:美学长度必须为 1 或与数据 (10) 相同:x
m1 %>% ggplot(aes(Days, m)) +
theme_minimal() +
geom_ribbon(data = m1 %>% filter(Days > 5),
aes(ymin = 0, ymax = 400),
fill = 'khaki',
alpha = 0.30) +
geom_vline(xintercept = 6) +
geom_point() +
geom_errorbar(aes(ymin = m - s, ymax = m + s))
推荐阅读
- python - 如何将时间窗口约束和容量约束添加到 VRP?
- php - 如何将数据插入数据库
- r - r 在分组数据框中用“/”分隔数字
- cron - 如何为每月的第 10 个工作日编写 cron 表达式?
- jquery - 获取属性的当前值,而不是原始值
- spring-boot - 获取在 Spring 中导致异常的操作的输入值/上下文的惯用方法?
- c# - 组合框 ItemsControl 以显示 SelectedItems 集合的属性
- python - Django 错误 400 与 urlopen 中的变量
- flutter - 使用组合 Future 结果在一个列表中,创建一个饼图
- python - Keras自定义层:如何将层的输入与自定义层的定义参数相乘?