2015-09-18 7 views
6

Vorrei tracciare rettangoli ma ho un asse x che è un valore discreto. Come posso impostare i valori xmin e xmax per iniziare in un punto tra i valori discreti?come utilizzare geom_rect con valori di asse discreti

library(ggplot2) 
df <- data.frame(x = c("a","b","c"), y = c(1,2,3)) 
ggplot(data = df) + geom_rect(data = NULL, aes(xmin = "b", xmax = "c", ymin = 1.5, ymax = 2.5)) 

Questo codice traccia un rettangolo ma vorrei spostarlo leggermente a sinistra. Mi piacerebbe essere in grado di impostare xmin = "b" -0.3 e xmax = "b" +0.3, se questo ha senso.

risposta

7

si può provare:

ggplot(data = df) + 
    geom_rect(data = df, aes(x = x, y=y), xmin = as.numeric(df$x[[2]]) - 0.3, 
             xmax = as.numeric(df$x[[3]]) + 0.3, 
             ymin = 0, ymax = 2) 

Questo funziona, come se si chiama xmin e xmax, ecc al di fuori della chiamata aes, si può usare quello che vuoi. I livelli dei fattori sono utilizzati nella trama per tracciarli, quindi as.numeric farà in modo di ottenere quello giusto.

+0

Grazie @jeremycg che risponde alla mia domanda e funziona! Grazie anche per il suggerimento che vengono utilizzati i livelli di fattore. – Mist

Problemi correlati