天天看點

《R資料可視化手冊》——3.9 添加資料标簽

本節書摘來異步社群《r資料可視化手冊》一書中的第3章,第3.9節,作者:【美】winston chang,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

問題

如何給條形圖添加資料标簽?

方法

在繪圖指令中加上geom_text()即可為條形圖添加資料标簽。運作指令時,需要分别指定一個變量映射給x、y和标簽本身。通過設定vjust(豎直調整資料标簽位置)可以将标簽位置移動至條形圖頂端的上方或者下方,如圖3-22所示。

《R資料可視化手冊》——3.9 添加資料标簽

注意,當資料标簽被置于條形圖頂端時,它們可能會被遮擋。為了避免這個問題,可以參見8.2節的内容。

讨論

在圖3-22中,資料标簽的y軸坐标位于每個條形的頂端中心位置;通過設定豎直調整(vjust)可以将資料标簽置于條形圖頂端的上方或者下方。這種做法的不足之處在于當資料标簽被置于條形圖頂端上方時有可能使資料标簽溢出繪圖區域。為了修正這個問題,我們可以手動設定y軸的範圍,也可以保持豎直調整不變,而令資料标簽的y軸坐标高于條形圖頂端。後一種辦法的不足之處在于,當你想将資料标簽完全置于條形圖頂端上方或者下方的時候,豎直方向調整的幅度依賴于y軸的資料範圍;而更改vjust時,資料标簽離條形頂端的距離會根據條形圖的高度自動進行調整。

對于簇狀條形圖,需要設定position=position_dodge()并給其一個參數來設定分類間距。分類間距的預設值是0.9,因為簇狀條形圖的條形更窄,是以,需要使用字号(size)來縮小資料标簽的字型大小以比對條形寬度。資料标簽的預設字号是5,這裡我們将字号設定為3使其看起來更小(見圖3-23)。

《R資料可視化手冊》——3.9 添加資料标簽

向堆積條形圖添加資料标簽之前,要先對每組條形對應的資料進行累積求和。在進行本操作之前,須保證資料的合理排序,否則,可能計算出錯誤的累積和。我們可以用plyr包中的arrange()函數完成上述操作,plyr包是一個随ggplot2包加載的軟體包。

确認資料合理排序之後,我們可以借助ddply()函數以date為分組變量對資料進行分組,并分别計算每組資料對應的變量weight的累積和。

結果如圖3-24所示。

《R資料可視化手冊》——3.9 添加資料标簽

使用資料标簽時,對堆疊順序的調整最好是通過在計算累積和之前修改因子的水準順序(參見15.8節)來完成。另一種修改堆疊順序的方法是在标度中指定breaks參數,但在這裡此方法并不合适,因為累計求和的順序與堆疊的順序并不一緻。

如果想把資料标簽置于條形中部(見圖3-25),須對累計求和的結果加以調整,并同時略去geom_bar()函數中對y偏移量(offset)的設定:

《R資料可視化手冊》——3.9 添加資料标簽

為了得到效果更好的條形圖(見圖3-26),我們修改一下圖例順序和顔色,将資料标簽置于條形中間,同時通過字号參數(size)縮小标簽字号,并調用paste函數在标簽後面添加“kg”,為了使得标簽保留兩位小數我們還需調用format函數:

《R資料可視化手冊》——3.9 添加資料标簽

另見

更多關于控制文本格式的内容可參見9.2節。

更多關于分組轉換資料的内容可參見15.6節。