2013-02-18 128 views
4

基本知識: 使用R統計軟件,ggplot2,geom_vline和geom_histogram可視化一些數據。問題在於圖例鍵。如何使用geom_vline和geom_histogram刪除填充比例圖例中的線g gplot2

我試圖從一些隨機模擬中繪製一對直方圖,並在該圖上繪製了幾行代表確定性模擬的結果。我已經繪製了數據,但直方圖的圖例鍵在它們中間有一條不必要的黑線。你能幫我刪除那些黑線嗎?一些示例代碼再現問題就在這裏:

df1 <- data.frame(cond = factor(rep(c("A","B"), each=200)), 
       rating = c(rnorm(200),rnorm(200, mean=.8))) 

df2 <- data.frame(x=c(.5,1),cond=factor(c("A","B"))) 

ggplot(df1, aes(x=rating, fill=cond)) + 
    geom_histogram(binwidth=.5, position="dodge") + 
    geom_vline(data=df2,aes(xintercept=x,linetype=factor(cond)), 
      show_guide=TRUE) + 
    labs(fill='Stochastic',linetype='Deterministic') 

enter image description here 編輯:添加圖像

乾杯, 瑞安

回答

3

一個解決辦法是改變geom_histogram()geom_vline()的順序。然後添加另一個geom_vline()沒有aes(),只是給xintercept=linetype=。這不會刪除線條,但會將其隱藏在彩色圖例條目下。

ggplot(data=df1, aes(x=rating, fill=cond)) + 
    geom_vline(data=df2,aes(xintercept=x,linetype=factor(cond)), 
      show_guide=TRUE) + 
    geom_histogram(binwidth=.5, position="dodge") + 
    geom_vline(xintercep=df2$x,linetype=c(1,3))+ 
    labs(fill='Stochastic',linetype='Deterministic') 

enter image description here

+0

謝謝!你已經解決了我的問題。如果你不介意,你能解釋爲什麼這些線條是在填充鍵中出現的嗎?在我看來,奇怪的是,圖例按鍵(紅色或綠色條帶黑色線條)與實際數據不匹配(紅色或綠色條帶NO線條) – RyanStochastic 2013-02-18 19:50:03

+0

我不確定發生這種情況的方式,但我認爲它以某種方式與geom_vline()。即使我使用具有不同級別和名稱的數據框,也會發生這種情況。 – 2013-02-18 20:01:02

+0

ggplot對我來說仍然是一個美麗的謎。再次感謝。 – RyanStochastic 2013-02-18 23:08:56