r - ggplot2 错误 - 替换有 100 行,数据有 2

标签 r ggplot2

生成以下数据帧。

library(tidyverse)
library(qicharts2)
plot1 <- qic(age,
              data    = tail(cabg, 100), 
              chart   = 'i',
              title   = 'Age of the last 100 patients (I chart)',
              ylab    = 'Years',
              xlab    = 'Patient #',
              facet   = ~ gender)
p1 <- plot1$data

然后绘制以下内容。

plot2 <- ggplot(p1, aes(x, y)) +
  geom_ribbon(ymin = p1$lcl, ymax = p1$ucl, fill = "black", alpha = 0.05) +
  geom_line(colour = "black", size = 1) + 
  geom_line(aes(x, cl)) +
  geom_point(colour = "black" , fill = "black", size = 2) +
  ggtitle(label = "") +
  labs(x = NULL, y = NULL) +
  scale_y_continuous(breaks = seq(0, 100, by = 10)) + 
  facet_grid(~ p1$facet1) + 
  theme_bw() + 
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
plot2

当我尝试添加一些 geom_point() 时,出现错误。

plot2 + geom_point(
    data = p1 %>% filter(sigma.signal == TRUE),
    color = "red"
  )

如何解决这个问题?

Error in $<-.data.frame(*tmp*, "PANEL", value = c(1L, 1L, 1L, 1L, : replacement has 100 rows, data has 2

我可以在经济学数据集上以相同的方式在点之上添加点,没有任何问题。见下文。为什么我在我的主要示例中遇到麻烦?

ggplot(economics, aes(date, unemploy)) + 
  geom_point() + 
  geom_point(
    data = economics %>% 
      filter(date > as.Date("2009-12-31")), 
    color = "red"
    )

最佳答案

您所需要做的就是对新数据进行分面。也就是说,

plot2 + geom_point(
  data = p1 %>% filter(sigma.signal == TRUE),
  color = "red") + facet_grid(~ facet1)

enter image description here

关于r - ggplot2 错误 - 替换有 100 行,数据有 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458522/

相关文章:

r - 根据行和列元数据将 data.frame 中的一个值除以备用 data.frame 中的另一个值

将文件读入 R 并保留行尾

r - 拆分数据以在 R 中并排绘制直方图

r - 在 ggplot2 中;在这种情况下,如何将 x 轴移动到顶部,然后使用 coord_flip () 旋转轴?

r - 为什么 ggplot 在指定其他颜色时使用默认颜色?

R 如何从数据框中的长列名中删除字符

mysql - 列出两个日期之间的日期,并将与新日期关联的金额除以各自的日期和 ID R/PYTHON/EXCEL

r - 按组划分的密度曲线下的ggplot2阴影面积

r - ggplot - 集中 facet_grid 标题并且只出现一次

r - 更改 ggplot2 barplot 中闪避条的顺序