2013-02-06 131 views
4

我正在繪製一個4維數據集。除了x軸和y軸,我想通過不同寬度和高度的矩形表示第3和第4維。我可以用ggplot做到這一點嗎?謝謝。如何爲ggplot中的每個點使用不同的形狀

enter image description here

+2

您能否提供找一個可重複的例子,並詳細說明預期的情節? – agstudy

+1

@agstudy據我所知,它基本上是一個x-y散點圖,每個點都是一個矩形。這些矩形點的高度和寬度被映射到兩個其他變量。正確的比例將是一個麻煩,一些數據的工作肯定會加快速度。 –

+0

@ sebastian-c是的,正好。我已經更新了一份草稿。 – ziyuang

回答

8

這裏有一個辦法:

dd <- data.frame(x = (x <- 1:10), 
       y = x + rnorm(10), width = runif(10,1,2), height = runif(10,1,2)) 

ggplot(data = dd) + 
    geom_rect(aes(xmax = x + width/2, xmin = x - width/2, 
       ymax = y + height/2, ymin = y - height/2), 
      alpha =0.2, color = rgb(0,114,178, maxColorValue=256), 
      fill = rgb(0,114,178, maxColorValue=256)) + 
    coord_fixed() + 
    theme_bw() 

enter image description here

4

你可以嘗試這樣的事情。我用

  1. geom_point與形狀= 0,模擬矩形
  2. geom_rect創建ractangle點

我在這裏的數據(這將是更好地提供一些數據)爲中心

d=data.frame(x=seq(1,10), 
      y=seq(1,10), 
      width=rep(c(0.1,0.5),each =5), 
      height=rep(c(0.8,0.9,0.4,0.6,0.7),each =2)) 

ggplot(data = d) + 
    geom_rect(aes(xmax = x + width, xmin = x-width, 
       ymax = y+height, ymin = y - height), 
      color = "black", fill = NA) + 
    geom_point(mapping=aes(x=x, y=y,size=height/width), 
      color='red',shape=0)+ 
    theme_bw() 

enter image description here

+0

我可以擁有寬度和高度的圖例嗎? – ziyuang

相關問題