varias superponer modificar lineas graficos grafico graficas ggplot ejes dispersion barplot r graph line ggplot2 lattice

modificar - superponer graficas en r ggplot



gráfico de líneas horizontales con ensamblaje en R (2)

Usa el paquete ggplot2 con geom_segment para dibujar las líneas.

Comience combinando sus datos en un data.frame , ya que esta es la estructura de datos requerida para ggplot :

dat <- data.frame( pos = c(1, 3, 5, 8, 10, 12), start = c(1,3, 6, 7, 10, 11), end = c(5, 6, 9, 9, 13, 12) )

Crea la trama:

library(ggplot2) ggplot(dat) + geom_segment(aes(x=start, y=pos, xend=end, yend=pos), color="blue", size=3) + scale_y_reverse()

Tengo grandes datos como el siguiente, pero esta es solo una pequeña muestra.

pos <- c(1, 3, 5, 8, 10, 12) start <- c(1,3, 6, 7, 10, 11) end <- c(5, 6, 9, 9, 13, 12)

La variable Qunatative Pos será el eje Y y el eje X será la variable anthor X (cuantitativa). La longitud de la barra horizontal para cada valor Pos se define por el punto inicial y final. Por ejemplo, la línea para 1 comenzará desde 1 y finalizará en 3 en el eje x.

El siguiente es un boceto de la salida de la figura deseada.


En base R ...

plot(pos, type = ''n'', xlim = range(c(start, end)), ylim = c(13,0)) grid() segments(start, pos, end, pos)

Para obtenerlo más exactamente como tu figura ...

r <- par(''usr'') plot(pos, type = ''n'', xlim = range(c(start, end)), ylim = c(13.5,0.5), xlab = '''', xaxt = ''n'', yaxt = ''n'', panel.first = rect(r[1], r[3], r[2], r[4], col = ''goldenrod'')) # abline(h = 1:13, col = ''white'') # abline(v = 1:13, col = ''white'') grid(lty = 1, col = ''white'') axis(1, 1:13, 1:13, cex.axis = 0.8) axis(2, 1:13, 1:13, las = 1, cex.axis = 0.8) segments(start, pos + 0.5, end, pos + 0.5, lwd = 2)