R用geom_地毯反转ggplot中的小线条
我有一个数据框,有两列:date和var1。 现在我想在ggplot中绘制这两个变量,并使用R用geom_地毯反转ggplot中的小线条,r,ggplot2,R,Ggplot2,我有一个数据框,有两列:date和var1。 现在我想在ggplot中绘制这两个变量,并使用geom_rug()添加小行 但在本例中,小行表示date,而不是var1。(var1只有10个值,但有15个小行) 有人能帮我一下吗,如何反转geom\u rug-元素并避免这个问题 在df$var和df$date中有15行。在前者中,5个是NA 一种方法是定义一个有限的数据集,其中只包含绘制内容的相关信息(而不是NAs)。这应提交给geom\u rug。使用complete.cases我们可以省略数据
geom_rug()
添加小行
但在本例中,小行表示date
,而不是var1
。(var1
只有10个值,但有15个小行)
有人能帮我一下吗,如何反转geom\u rug
-元素并避免这个问题
在
df$var
和df$date
中有15行。在前者中,5个是NA
一种方法是定义一个有限的数据集,其中只包含绘制内容的相关信息(而不是NA
s)。这应提交给geom\u rug
。使用complete.cases
我们可以省略数据集中带有NA
s的行
您可以使用以下代码来实现所需的绘图
library(ggplot2)
library(tibble)
library(dplyr)
df %>% ggplot(aes(x = date, y = var1)) +
geom_point() +
geom_rug(data = df[complete.cases(df), ] , ## selected date: not NA
sides = "lt",
outside = TRUE) +
coord_cartesian(clip = "off")
请让我知道这是否是您想要的。如果您想在打印时删除所有带有NA值的案例,另一个选项是使用ggplot2
remove_missing()
函数:
df %>% ggplot(data = remove_missing(.), mapping = aes(x=date,y=var1))+
geom_point()+
geom_rug(sides = "t",outside = T) +
coord_cartesian(clip = "off")
var1
正在映射到y轴,因此除非您想将其映射到x轴,否则只能在绘图的左侧或右侧放置地毯标记。谢谢您的回答。我已经有了自己的解决方案。但是你的方法要好一点。也非常感谢你。
library(ggplot2)
library(tibble)
library(dplyr)
df %>% ggplot(aes(x = date, y = var1)) +
geom_point() +
geom_rug(data = df[complete.cases(df), ] , ## selected date: not NA
sides = "lt",
outside = TRUE) +
coord_cartesian(clip = "off")
df %>% ggplot(data = remove_missing(.), mapping = aes(x=date,y=var1))+
geom_point()+
geom_rug(sides = "t",outside = T) +
coord_cartesian(clip = "off")