本節書摘來異步社群《r資料可視化手冊》一書中的第3章,第3.1節,作者:【美】winston chang,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
問題
你有一個包含了兩列資料的資料框,其中一列資料表示條形在x軸上的位置,另一清單示每個條形在y軸上對應的高度,基于此,如何繪制條形圖?
方法
使用ggplot()函數和geom_bar(stat="identity")繪制上述條形圖,并分别指定與x軸和y軸對應的變量(見圖3-1)。

讨論
當x是連續型(數值型)變量時,條形圖的結果與上圖會略有不同。此時,ggplot不是隻在實際取值處繪制條形,而将在x軸上介于最大值和最小值之間所有可能的取值處繪制條形,如圖3-2所示。我們可以使用factor()函數将連續型變量轉化為離散型變量。
圖3-2 左圖:針對變量值繪制的條形圖(參數stat="identity"),x軸對應的是連續型變量 右圖:将x轉化為因子型變量之後繪制的條形圖(注意此處缺失了取值為6的條形)
本例中,資料集中包含兩列分别對應于x和y變量。如果你想讓條形圖的高度與每組變量的頻數相對應,可參見3.3節的内容。
預設設定下,條形圖的填充色為黑灰色且條形圖沒有邊框線,我們可通過調整fill參數的值來改變條形圖的填充色;可通過colour參數為條形圖添加邊框線。在圖3-3中,我們将填充色和邊框線分别指定為淺藍色和黑色。
在ggplot2中,顔色參數預設使用的是英式拼寫colour,而非美式拼寫color。然而,ggplot2會在底層将美式拼寫重映射為英式拼寫,是以輸入美式拼寫的參數并不影響函數的運作。
另見
如果你想讓條形圖的高度對應于每組變量的頻數,可參見3.3節的内容。
根據另一個變量值重排因子水準順序的内容可參見15.9節。手動更改因子水準順序的内容,可參見15.8節。
更多關于圖形着色的内容,可參見本書第12章。