2016-05-17 70 views
2

的字符變量我有一個DFgeom_bar繪製DF長度

a b 
A 1 
B 1 
C 1 
B 1 
B 1 
A 1 

我試圖產生條形圖與ggplotDF$a在x軸和DF$b在y軸上。我用下面的

p <- ggplot(DF, aes(a,b)) + geom_bar(stat="identity") 

但現在看來,從DF$a只有ggplot地塊特有的字母,而我想繪製所有這些的。我該怎麼做?謝謝你的幫助。

回答

2

您可以創建一個名爲order的新變量,該變量在每一行中都是唯一的,並用它來繪圖。然後,您可以重新標記x軸以匹配原始變量。

df$order <- as.factor(1:nrow(df)) 

ggplot(df, aes(x = order, y = b)) + 
    geom_bar(stat = 'identity') + 
    scale_x_discrete(breaks = df$order, labels = df$a) 
2

你可能避免定義一個新的變量如圖@ mhairi - 麥克尼爾僅通過拉動rownames斷爲您的x值

ggplot(DF, aes(x = rownames(DF),y = b)) + 
    geom_bar(stat="identity") + 
    scale_x_discrete(labels = DF$a) 
+0

謝謝你,其實我試過,但沒得到運氣。 – HoHoHo

+0

有趣 - 這在我的機器上正常工作。你可能需要嘗試使用'as.factor()'來包裝'rownames(DF)'...... – joemienko

+0

是的,確切地說,那是我的錯誤,謝謝你的幫助! :) – HoHoHo