2016-06-13 175 views
2

我試圖用ggplot使條形圖,東西非常像:覆蓋GGPLOT2圖例文本

mtcars$gear <- as.factor(mtcars$gear) 
ggplot(mtcars, aes(gear, mpg, fill=gear))+geom_bar(stat="identity")+ 
scale_fill_manual(values=c("grey30", "grey50", "grey70")) 

現在我想傳說中的第一個標籤(它在我的例子說,3)說「參考」,同時保持其餘的標籤完好無損,即4和5.

我有一個非常困難的時間找到一種方法來做到這一點。我一直無法在這裏找到類似於我的地方的問題。

有沒有人知道這個解決方案?

回答

2

修復因子標籤,然後劇情:

# set labes when creating factor 
mtcars$gear <- factor(mtcars$gear, 
         levels = c("3", "4", "5"), 
         labels = c("reference", "4", "5")) 

或者,如果我們只想爲"3"更新標籤,因子轉換後:

mtcars$gear <- as.factor(mtcars$gear) 
levels(mtcars$gear)[levels(mtcars$gear) == "3"] <- "reference" 
+0

'labels = c(「3」=「reference」)'應該做得好還是不好? – beetroot

+0

@beetroot你的意思是'因素(mtcars $ gear,labels = c(「3」=「reference」))',這是行不通的。 – zx8754

+0

對不起,我的意思是'scale_fill_manual()' – beetroot

1

您可以使用:

mtcars$gear <- as.factor(mtcars$gear) 
ggplot(mtcars, aes(gear, mpg, fill=gear)) + geom_bar(stat="identity") + 
scale_fill_manual(
    values=c("grey30", "grey50", "grey70"), 
    labels = c("reference", "4", "5"))