1

我处理的另一个挑战,但没有成功......我有以下代码:

x<-c(seq(1,10,0.5),seq(50,60,0.5))
y<-runif(40)
df<-data.frame(x,y)
df$gender<-c(rep(0,19),rep(1,21))
r<-c(runif(50,0,10),runif(20,50,60))
df_rug<-data.frame(r)
library(ggplot2)
ggplot(df,aes(x,y))+geom_line()+
  geom_rug(data = df_rug, aes(x = r, y = Inf), color = 'red', sides = 'b')+
  facet_grid(.~gender,scales = "free")

产生以下情节:

在此处输入图像描述

我正在尝试删除左侧面板(从 x=10 开始)和右侧面板(在 x=50 下)上的空白部分。我介绍了在scales=("free")没有该选项的情况下完美运行的geom_rug()选项,但我需要保留geom_rug(). 如何切割每个面板的空白部分?我试图探索这个element.blank()选项,但没有成功......

4

1 回答 1

4

ggplot2中,很难制作不连续的轴。

因为,我理解你的问题,似乎你有一些性别 = 0 和性别 = 1 的地毯值。如果你在你的 中添加一个额外的列,genderdf_rug将能够通过使用来分离你rug正在gender做的事情:dffacet_grid

df_rug<-data.frame(r, gender = c(rep(0,50),rep(1,20)))

library(ggplot2)
ggplot(df,aes(x,y))+geom_line()+
  geom_rug(data = df_rug, aes(x = r, y = Inf), color = 'red', sides = 'b')+
  facet_grid(.~gender,scales = "free")

在此处输入图像描述

它回答了你的问题吗?

于 2020-03-21T00:10:47.280 回答