ggplot2 坐標系相關設置(coord)


在ggplot中,未來更好的數據可視化效果,我們有時候可能要用到一些坐標轉換的操作,比如要畫橫向條形圖或者蜘蛛圖等。

coord_cartesian(xlim = NULL, ylim = NULL)

笛卡爾坐標:從來看coord_cartesian的參數相對比較簡單,x和y的數據限定范圍

coord_flip(...)

橫向轉換坐標:把x軸和y軸互換,沒有特殊參數

coord_trans(x = "identity", y = "identity", limx = NULL, limy = NULL)

坐標形式轉換:包括對數轉換,平方根轉換等,這里x和y 的值可以是log10,log2或squal等,另外兩個參數也是限定坐標范圍

coord_equal(ratio=1, ...)

等坐標轉換:使用這個函數后,x軸和y軸坐標會被轉換成相等形式,此時圖形會產生較大的縮放,radio可以進一步調整縮放比例(x和y的比值)

coord_polar(theta = "x", start = 0, direction = 1)

極坐標轉換:可以做出蜘蛛圖或餅圖的效果,參數方面theta 可以選擇x或y,表示外延的坐標,start是坐標開始的角度,默認其實位置是12點鍾,

direction 表示數據的方向,1是順時針,-1為逆時針。

 

下面我們來看些具體的例子:

library(ggplot2)
p<-ggplot(mtcars,aes(mpg,hp))+geom_point(color="blue",size=2)
p+coord_cartesian()

  

笛卡爾坐標轉換和正常情況下畫圖的效果是一樣的。

p+coord_flip()

  

上圖橫坐標和縱坐標進行了互換,用條形圖看可能更明顯一些。

pp<-ggplot(mtcars,aes(cyl))+geom_bar(fill="blue",width=0.8)
pp

  

pp+coord_flip()

  

p+coord_trans(x="log2",y="sqrt")

  

對坐標軸進行對數和平方根轉換,在之前的scale設置中有提到過,相對scale設置而言,coord_trans的優勢在於可以對x和y 進行一次性轉換。

p+coord_equal()

  

 

正常情況下,如果直接對圖形進行coord_equal操作,最后可是效果一般都非常差,因為大多數時候x和y的數據基本都不相同而且差距可能也比較大,

相對的對ratio參數進行設置是比較明智的選擇。

p+coord_equal(ratio=0.08)

  

這張圖的效果,相對於上一張就好多了,當然你還可以對ritio參數進行進一步設置,達到更好的效果。

p+coord_polar(theta="x")

  

p+coord_polar(theta="y")

  

可以看出兩張圖最外圈坐標的變化,是由theta參數的選擇來決定的。

pp+coord_polar(theta="x")

  

pp+coord_polar(theta="y")

  

使用條形同進行轉換的效果變成以上的樣子,圖形雖然炫酷,但可視性不如條形圖,如果cyl在三個水平下數據條目是一樣的,畫出的結果就是一個餅圖。

這個方法是ggplot中用來實現餅圖的方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM