У меня есть следующий R
код:
x<-runif(1000,0,33)
df1 <- data.frame(x)
df2<-data.frame(x=c(180,660))
df<-rbind(df1,df2)
eigenv<-c(runif(998,0,60),173,653)
df_rug <- data.frame(eigenv)
df$mask<-0
df$mask[df$x > 60 ] <- 1
df$mask[df$x > 640 ] <- 2
df_rug$mask<-c(rep(0,998),1,2)
require(ggplot2)
ggplot(df, aes(x = x))+
geom_histogram(aes(y=..density..),bins=20,color='black',fill='white')+
scale_x_continuous(breaks=c(seq(0,60,20),160,180,660))+
geom_rug(data = df_rug, aes(x = eigenv, y = Inf), color = 'red', sides = 'b')+
facet_grid(.~mask,scales='free', space='free')+
xlab('eigenvalues')+
theme(strip.background = element_blank(), strip.text.x = element_blank())
Код создает следующий график:
Мне пришлось создать 2 последние панели, потому что последние 2 значения eigenv
- это экстремальные значения, которые я хочу поместить на график гистограммы с разрезом по шкале x. Тем не менее, код помещает 2 полосы с высокой плотностью в две последние панели, но я не хочу эти полосы, так как я хочу плотность 0 для этих панелей. Есть ли способ достичь этого?