2015-10-29 11 views
0

Я пытаюсь построить стек из графиков плотности ggplot2, например, так:Продлить ggplot линий по оси X в прошлом диапазон данных

enter image description here

И я выстроился/ограничивали х-оси так, чтобы то эти grpahs складываются с использованием пакета gridExtra, тики строятся идеально. Однако, при этом, что я думал, была твердой оси х маркер перед тем оказывается, быть снизу «маркер» линия в нижней части плотности участка:

enter image description here

есть в любом случае, чтобы добавить обратно в какой-то оси х? Сюжеты выглядят несколько голыми/пустыми без него. Я понимаю, что это более четко указывает пределы данных, но выглядит не законченным и сломанным.

Редактировать

Вот код, я использую:

g <- ggplot(df_L, aes(x=values, linetype= type)) + 
geom_density() + 
ggtitle(expression('Low Region: '~LI[i]~'and'~WI[i])) + 
scale_x_continuous(breaks = c(seq(0,100,10)), expand = c(0,0)) + 
scale_y_continuous(expand = c(0,0)) + 
coord_cartesian(xlim = c(0,100)) + 
theme(text = element_text(size=20), 
     plot.title = element_text(size=14, vjust=1.5, hjust=0.5), 
     axis.title.x=element_blank(), 
     axis.title.y = element_blank(), 
     legend.position = c(0.1, 0.75), 
     legend.text.align = 0, 
     legend.box = 'horizontal', 
     legend.margin = unit(45.0, 'line'), 
     legend.text=element_text(size=14,vjust=0,hjust=0), 
     legend.key.height = unit(1, 'line'), 
     legend.key.width = unit(1, 'line'), 
     panel.background = element_rect(fill = "white")) + 
scale_linetype_manual(values=c(1,2,3), 
         labels=c(expression(LI[i]),expression(WI[i]))) + 
guides(linetype = guide_legend(title=NULL)) 

g 
+0

ли вы удалить ось х в любом случае? (Использование темы?) Если это не так, показывая некоторые данные кода/образца (например, [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible -пример)). – Heroka

+0

Добавил бы 'geom_hline (yintercept = 0)' достаточно? – Peter

ответ

1

Я думаю, что проблема в том, что в теме вы используете (по умолчанию) не имеет определенного x- ось (или ось Y, если на то пошло), но положения оси обозначаются сеткой. Поэтому вам нужно специально добавить ось, используя, например, + theme_bw(), или добавив что-то в тему. Я сделал это (в красном цвете, вы можете реально увидеть его):

set.seed(124) 
df_L <- data.frame(values=rnorm(1000,500,200),type=sample(LETTERS[1:3],1000,T)) 

g <- ggplot(df_L, aes(x=values, linetype= type)) + 
    geom_density() + 
    ggtitle(expression('Low Region: '~LI[i]~'and'~WI[i])) + 
    scale_x_continuous(breaks = c(seq(0,100,10)), expand = c(0,0)) + 
    scale_y_continuous(expand = c(0,0)) + 
    coord_cartesian(xlim = c(0,100)) + 
    theme(text = element_text(size=20), 
     plot.title = element_text(size=14, vjust=1.5, hjust=0.5), 
     axis.title.x=element_blank(), 
     axis.title.y = element_blank(), 
     legend.position = c(0.1, 0.75), 
     legend.text.align = 0, 
     legend.box = 'horizontal', 
     legend.margin = unit(45.0, 'line'), 
     legend.text=element_text(size=14,vjust=0,hjust=0), 
     legend.key.height = unit(1, 'line'), 
     legend.key.width = unit(1, 'line'), 
     panel.background = element_rect(fill = "white"), 
     axis.line=element_line(colour="red",size=2)) + 
    scale_linetype_manual(values=c(1,2,3), 
         labels=c(expression(LI[i]),expression(WI[i]))) + 
    guides(linetype = guide_legend(title=NULL)) 

enter image description here