本節書摘來自異步社群《r資料可視化手冊》一書中的第3章,第3.5節,作者 【美】winston chang,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
問題
如何根據條形對應的正負取值對其進行分别着色?
方法
下面以climate資料的一個子集為例。首先,建立一個對取值正負情況進行标示的變量pos:
上述過程準備完畢後,将pos映射給填充色參數(fill)并繪制條形圖(見圖3-11)。注意:這裡條形圖的參數設定為position="identity",可以避免系統因對負值繪制堆積條形而發出的警告資訊。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2E2N4UmMhJ2MhVTMhZ2Y0ETZjljZzYTYzcjZ4IWZwkjYwYTZwADNy8CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
讨論
上面的繪圖過程存在一些問題。首先,圖形着色效果可能跟我們想要的相反:藍色是冷色,通常對應于負值;紅色是暖色,通常對應于正值。其次,圖例顯得多餘且擾亂視覺。
我們可以通過scale_fill_manual()參數對圖形顔色進行調整,設定參數guide=false可以删除圖例,如圖3-12所示。同時,我們通過設定邊框顔色(colour)和邊框線寬度(size)為圖形填加一個細黑色邊框。其中,邊框線寬度(size)是用來控制邊框線寬度的參數,機關是毫米:
另見
更多關于更改圖形顔色的内容可參見12.3節和12.4節。
更多關于隐藏圖例的内容可參見10.1節。