2014-03-03 51 views
6

我想讓我的圖的邊界變成黑色以外的某種顏色。我發現,如果我設置的默認主題使用theme_bw():ggplot中panel.border的問題

theme_set(theme_bw()) 

,我可以邊框設置爲顏色我想用

theme(panel.border = element_rect(color="darkred", size=0.5, linetype="solid"). 

,似乎工作正常。每個面板的邊框,無論是多面的情節還是單個情節,都會呈現「黑暗」的顏色,其餘情節與我更換面板前的情節相同。然而,如果我使用不同的默認主題,比如說theme_gray()或theme_classic(),那麼邊框會改變,但是每個facet的內容都會被清除(完全是白色的)。

任何想法是什麼導致這種行爲差異或我可以做些什麼來解決它?我想使用theme_gray()並在每個方面的邊框周圍放一條細線。

回答

6

theme()的幫助頁面說panel.borded=This should be used with fill=NA因爲它覆蓋面板。

對於theme_bw()已經有panel.border = element_rect(fill = NA,colour = "grey50"),所以當你使用你的語句時只會改變顏色並填充爲NA

對於theme_grey()theme_bw()panel.border = element_blank()所以當你把你的說法,color=fill=改變因爲以前這個元素是空白,爲rect默認值是fill="white"(至少theme_grey())。

使用

+ theme(panel.border = element_rect(fill=NA,color="darkred", size=0.5, 
            linetype="solid")) 
+0

謝謝,Didzis。在我去幫助頁面之前,可能會再花幾天時間。不過,這個問題還沒有完全解決。當我在ggplot命令 –

+0

... oops結束時提出你的建議......它可以正常工作。但是當我將它添加到我的主題中時,它什麼也不做。 –

+0

我解決了第二個問題。原來是我主題中的一個錯字。謝謝你的幫助。非常感激。 –