2017-04-17 27 views
0

我打算把四個圖形放在一個頁面中。每個圖表顯示單個統計量的點估計及其置信區間。我正在努力改變每個plot中geom_errorbar晶須的寬度。它似乎沒有改變,即使我改變了geom_errorbar()中的寬度參數。不能改變多重區域內的geom_errorbar寬度

對於我來說,分別繪製這四個統計數據非常重要,因爲您可以在下面的圖表中注意到,每個統計量的點估計值和置信區間均在不同範圍內定義。我用來繪製多個圖的多點功能在http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/中定義。

#creates data.frame where point estimates and confidence intervals will be 
#stored 
#the numbers inputed in df are similar to the ones I get from previously 
#performed regressions 
w<-c(1:4) 
x<-c(0.68,0.87,2.93,4.66) 
y<-c(0.47,0.57,0.97,3.38) 
z<-c(0.83,1.34,4.17,7.46) 
df<-data.frame(w,x,y,z) 

#plot each statistic 
#(each row from df is a statistic: w for index, x for point estimate, 
#y for ci lower bound and z for ci upper bound) 

p1 <- ggplot(df[1,], aes(x = w, y = x)) + 
     geom_point(size = 4) + 
     geom_errorbar(aes(ymax = y, ymin = z),width=.1) + 
     labs(x="",y="") 

p2 <- ggplot(df[2,], aes(x = w, y = x)) + 
     geom_point(size = 4) + 
     geom_errorbar(aes(ymax = y, ymin = z),width=.1) + 
     labs(x="",y="") 

p3 <- ggplot(df[3,], aes(x = w, y = x)) + 
     geom_point(size = 4) + 
     geom_errorbar(aes(ymax = y, ymin = z),width=.1) + 
     labs(x="",y="") 

p4 <- ggplot(df[4,], aes(x = w, y = x)) + 
     geom_point(size = 4) + 
     geom_errorbar(aes(ymax = y, ymin = z),width=.1) + 
     labs(x="",y="") 

multiplot(p1, p2, p3, p4, cols=2) 

我非常感謝任何幫助和建議。

謝謝, 加布裏埃爾

EXAMPLE PLOT HERE. How can I change errorbar whisker width for each graph separately?

回答

0

寬度變化,但x軸被縮放以匹配誤差棒的寬度。您需要使用手動設置x軸,例如xlim

p1,你可以嘗試+ xlim(0.8, 1.2)

另外,您可以使用expand參數scale_x_continuous,例如scale_x_continuous(expand = c(0, 0.1))

+0

非常感謝@NickKennedy!我排除了x軸(圖中唯一相關的組件是y軸),寬度確實發生了變化。 –

+0

@GabrielJarda不用擔心。請考慮將答案標記爲已接受。我也會考慮使用faceting,因爲它可能比multilot更適合您的需求。請注意,您需要y上的刻度才能免費。 –