2011-10-13 11 views
28

Sto usando ggplot per tracciare i dati del corso di tempo (proporzioni di fissazione nel tempo a diversi oggetti sullo schermo) e voglio usare un nastro per mostrare il SE, ma il nastro stesso ha linee sul bordi superiori e inferiori, il che rende la lettura del grafico un po 'più difficile. Non sono stato in grado di capire come sbarazzarmi di quelle linee di confine. Ecco il mio codice di trama:ggplot: rimuovere le linee ai bordi del nastro

ggplot(gaze, aes(Time, Fix, color=Object, fill=Object)) + 
    stat_summary(fun.y="mean", geom="line", size=2) + 
    stat_summary(fun.data="mean_se", geom="ribbon", alpha=.3) 

Qualche suggerimento?

Ecco un esempio di funzionamento minimo. Ho compresso i miei dati a:

Time Object   y  lower  upper 
1 1000  C 0.12453389 0.04510504 0.2039627 
2 1000  T 0.58826856 0.37615078 0.8003864 
3 1000  U 0.09437160 0.03278069 0.1559625 
4 1100  C 0.12140127 0.03943988 0.2033627 
5 1100  T 0.64560823 0.44898727 0.8422292 
6 1100  U 0.06725172 0.01584248 0.1186610 

d <- structure(list(Time = c(1000L, 1000L, 1000L, 1100L, 1100L, 1100L), Object = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("C", 
"T", "U"), class = "factor"), y = c(0.12453389, 0.58826856, 0.0943716, 
0.12140127, 0.64560823, 0.06725172), lower = c(0.04510504, 0.37615078, 
0.03278069, 0.03943988, 0.44898727, 0.01584248), upper = c(0.2039627, 
0.8003864, 0.1559625, 0.2033627, 0.8422292, 0.118661)), .Names = c("Time", 
"Object", "y", "lower", "upper"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6")) 

ed ecco il nuovo codice di terreno:

ggplot(d, aes(Time, y, color=Object, fill=Object)) + 
    geom_line(size=2) + 
    geom_ribbon(aes(ymin=lower, ymax=upper), alpha=.3) 
+0

Vuoi costruire un esempio di lavoro minimo. Ciò significa che è necessario aggiungere alcuni dati semplici per eseguire il comando del grafico. – csgillespie

+0

Grazie, sembra aver aiutato. –

risposta

36

È possibile rimuovere il bordo utilizzando l'argomento colour:

ggplot(d, aes(Time, y, color=Object, fill=Object)) + 
    geom_line(size=2) + 
    geom_ribbon(aes(ymin=lower, ymax=upper), alpha=.3, colour=NA) 
2

Qui si va

ggplot(d, aes(Time, y, fill=Object)) + 
    geom_line(size=2, aes(colour = Object)) + 
    geom_ribbon(aes(ymin=lower, ymax=upper), alpha=.3) 
15

geom_ribbon comprende linetype estetico. Basta dare NA, in questo modo:

ggplot(d, aes(Time, y, color=Object, fill=Object)) + 
    geom_line(size=2) + 
    geom_ribbon(aes(ymin=lower, ymax=upper, linetype=NA), alpha=.3) 

Maggiori informazioni qui: http://docs.ggplot2.org/current/geom_ribbon.html

+0

'linetype = NA' non funziona per me, tuttavia,' linetype = 0' o 'linetype = 'blank'' funziona. http://ggplot2.tidyverse.org/reference/aes_linetype_size_shape.html – fber

Problemi correlati