r语言 - 当使用多个数据帧绘制多条线时,从ggplot中省略NA值



我的数据帧有时包含NA值。这些以前是空白,字符像'BAD'或实际'NA'字符从导入的。csv文件。我已经将数据框架中的所有内容更改为数字-这将所有非数字字符更改为NA。到目前为止,一切顺利。

我知道我可以使用以下使用数据帧'df'来确保在数据点之间始终绘制一条线,确保没有间隙:

ggplot(na.omit(df), aes(x=Time, y=pH)) +
geom_line()

然而,有时我希望使用ggplot2绘制2个或更多数据帧以获得单个图。我这样做是因为我的x轴(时间)对于所有数据帧确实是相同的,但是具体的数字是不同的。我在合并这些数据帧时遇到了很大的麻烦,因为行不相等。否则,我将合并、熔化数据,并使用ggplot2作为正常的多行线图。

我已经学会了你可以在'geom级别'的ggplot上手动绘制多个数据帧:

ggplot() + 
geom_line(df1, aes(x=Time1, y=pH1), colour='green') + 
geom_line(df2, aes(x=Time2, y=pH2), colour='red') +
geom_line(df3, aes(x=Time3, y=pH3), colour='blue') +
geom_line(df4, aes(x=Time4, y=pH4), colour='yellow')

但是,我现在如何确保NA值被省略并且行连接?!这一切似乎都有效,但我的4个地块在NA值的地方有差距!

我是R的新手,但是到目前为止我很喜欢它,并且意识到一个问题通常有多种解决方案。任何帮助或建议,感谢。

编辑

所以,玩了30分钟后,我意识到我可以先使用no。在每个数据框上分别省略函数,命名这些新对象,然后在ggplot上绘制它们。这很好。此外,如果我想要一个合适的图例,上面的代码无论如何都是不正确的。

新的正确代码:

df1.omit <- na.omit(df1)
df2.omit <- na.omit(df2)
df3.omit <- na.omit(df3)
df4.omit <- na.omit(df4)
ggplot() + 
geom_line(df1.omit, aes(x=Time1, y=pH1, colour="Variable 1") + 
geom_line(df2.omit, aes(x=Time2, y=pH2, colour="Variable 2") +
geom_line(df3.omit, aes(x=Time3, y=pH3, colour="Variable 3") +
geom_line(df4.omit, aes(x=Time4, y=pH4, colour="Variable 4")

所以,在玩了30分钟后,我意识到我可以先使用no。在每个数据框上分别省略函数,命名这些新对象,然后在ggplot上绘制它们。这很好。此外,如果我想要一个合适的图例,上面的代码无论如何都是不正确的。

df1.omit <- na.omit(df1)
df2.omit <- na.omit(df2)
df3.omit <- na.omit(df3)
df4.omit <- na.omit(df4)
ggplot() + 
geom_line(df1.omit, aes(x=Time1, y=pH1, colour="Variable 1") + 
geom_line(df2.omit, aes(x=Time2, y=pH2, colour="Variable 2") +
geom_line(df3.omit, aes(x=Time3, y=pH3, colour="Variable 3") +
geom_line(df4.omit, aes(x=Time4, y=pH4, colour="Variable 4")

相关内容

  • 没有找到相关文章

最新更新