2017-03-06 61 views
2

我正在通過使用ggplot2來繪製極座標圖。 360附近的數據丟失。 如何顯示所有數據? 以下是數據和代碼。使用ggplot2在極座標圖中缺少值

Angle Geno 
1.252 5 
329.714 5 
334.74 5 
348.166 5 
18.29 5 
3.035 5 
359.855 5 
358.348 5 
359.855 5 
9.317 5 
6.195 5 
355.281 5 
333.29 5 
349.235 5 
359.855 5 
1.219 5 
2.058 5 
342.205 5 
1.764 5 
345.321 5 
345.234 5 
337.606 5 
39.661 5 
328.425 5 
347.59 5 
348.545 5 

而且

i = 5 
Hist_LR_Geno <- Hist_LR[Hist_LR$Geno==i,] 
p5 <- ggplot(Hist_LR_Geno, aes(x=Angle)) 
p5 <- p5 + geom_histogram(binwidth=22.5) + 
scale_y_continuous(limits = c(-5, 5), breaks=NULL) + 
scale_x_continuous(limits=c(0,360), breaks=c(0,45,90,135,180,225,270,315)) + 
coord_polar(start=pi, direction=-1) + 
labs(x=NULL, y=NULL) + 
    theme(legend.position="none", 
    axis.text.x=element_blank(), 
    axis.ticks.x=element_blank(), 
    plot.margin=unit(c(-1,0,0,0), "cm"), 
    panel.background = element_rect(fill = "white"), 
    #panel.grid.major = element_line(size=0.2, color = "blue", linetype = "solid"), 
    panel.grid.minor = element_line(size=0.6, color = "blue", linetype = "dotted"), 
    axis.text=element_text(size=6)) 

plot(p5) 

這裏的情節。

enter image description here

感謝,

+0

你到底想幹什麼?目前還不清楚預期結果應該是多少 – GGamba

+0

感謝您的幫助。問題是關於邊緣區域0度和360度周圍沒有顯示的數據。參數'中心'是必要的。 – Takeshi

回答

1

你有兩個問題怎麼回事。首先,您使用geom_histogram來計算每個bin中的行數,但看起來您實際上可能需要每個bin中的Geno之和。現在讓我們忽略它,然後用geom_histogram。請多說一些你實際想做的事情,稍後我們可以回到那個問題上。

正如我所說的,geom_histogram計數每個bin中的行數。但是對於一些直方圖條,該行數大於5。但是,您已將scale_y_continuous設置爲限制c(-5,5)。因此,任何高於5的酒吧都會被刪除。下面是具有較大Ÿ限制的情節:

p5 + geom_histogram(binwidth=22.5) + 
    scale_y_continuous(limits = c(-5, 12), breaks=0:12) + 
    scale_x_continuous(limits=c(0,360), breaks=seq(0,360-45,45)) + 
    coord_polar(start=pi, direction=-1) 

enter image description here

UPDATE:關於您的評論:是的,我得到了同樣的問題陷入與scale_y_continuous。你的scale_x_continuous也排除值,因爲酒吧有寬度。最低的柱線延伸至零點以下,最高的柱線延伸至360以上,因此當x界限設置爲0至360時,這兩個柱線都會被排除。我們可以擴大x極限,但是x值必須從 - 22.5/2到360 + 22.5/2,而不是從0到360.

而是讓我們更改倉的位置,以便第一個倉適合介於0和22.5之間(而不是介於-22.5/2和22.5/2之間),最後一個箱子適合360-22.5和360(而不是360-22.5/2和360 + 22.5/2之間)。我們可以用geom_histogramcenter參數來做到這一點。你只需要給一個垃圾桶的中心,其餘的將相應地調整。

p5 + geom_histogram(binwidth=22.5, colour="white", center=22.5/2) + 
    scale_y_continuous(limits = c(-5, 14), breaks=0:15) + 
    scale_x_continuous(breaks=seq(0,360,45)) + 
    coord_polar(start=pi, direction=-1) 

enter image description here

+0

謝謝,eipi10。是的,那是一個錯誤。我可以修復範圍「limits = c(-5,12)」。但是,仍然只有14個數據。 – Takeshi

+0

再次感謝,eipi10! 「中心= 22.5/2」完美運作。沒有這個,0-11.25和348.5-360之間的數據沒有顯示。 – Takeshi