2015-09-18 13 views
6

Dikdörtgenleri çizmek istiyorum ancak ayrı değerlere sahip bir x eksenim var. Ayrık değerler arasındaki bir noktada başlamak için xmin ve xmax değerlerini nasıl ayarlayabilirim?geom_rect öğelerini ayrık eksen değerleri ile nasıl kullanırım

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)) 

Bu kod bir dikdörtgeni çizer ama ben onu biraz sola taşımak istiyorum. Ben xmin = "b" -0.3 ve xmax = "b" +0.3'ü ayarlayabilmek istiyorum.

cevap

7

Deneyebilirsin:

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) 

Bu işler, sen aes aramanın xMin ve xmax vb dışında ararsanız gibi, sen ne istersen kullanabilirsiniz. Çizelgelemek için arsada faktör düzeyleri kullanılır, bu nedenle as.numeric doğru olanı aldığınızdan emin olmanızı sağlayacaktır.

+0

Teşekkürler @jeremycg sorumu yanıtlıyor ve çalışıyor! Ayrıca faktör seviyelerinin kullanıldığı ipucu için teşekkürler. – Mist

İlgili konular