在R / ggplot中,仅从散点图中的一个变量中删除NA,随时间推移有2个变量

vxbzzdmp  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(97)

我想用ggplot绘制一段时间内的2个变量。其中一个变量包含NAs。我想在不丢失另一个变量的值的情况下从图中删除NAs。现在,ggplot在y轴顶部的一条线上绘制所有NAs。
我试着使用过滤器函数,但是ggplot抱怨说行不匹配:

cov_vs_no_scent_share_plot = cov_vs_no_scent_share %>%
  gather(key,value,no_scent_share , new_cases) %>%
  filter(!is.na(cov_vs_no_scent_share_plot$no_scent_share)) %>%
  ggplot(aes(x=Date, y=value, colour=key))

数据框的结构如下:
覆盖与无气味份额:

Date, new_cases, no_scent_share
2019-01-01, 1, 0.5
2019-01-02, 3, NA
2019-01-03, 5, 0.2
2019-01-04, 2, NA
2019-01-05, 1, 0.1
2019-01-06, 9, NA
...

我希望x轴代表日期,y轴代表“new cases”和“no_scent_share”。

laik7k3q

laik7k3q1#

一种方法是使用rug图,在没有可重复的例子的情况下,让我们使用内置的mtcars数据集。
假设我们想绘制wtmpg的关系图,但我们没有wt大于4的任何汽车的mpg测量值:

library(ggplot2)

df <- mtcars[c(6, 1)]
df$mpg[df$wt > 4] <- NA

如果我们想指出所有汽车都有wt,但其中一些没有mpg的值,我们可以沿着x轴添加一个geom_rug,这将显示wt的所有值,即使mpg的数据丢失:

ggplot(df, aes(wt, mpg)) + 
  geom_point() +
  geom_rug(sides = 'b')

相关问题