天天看點

R語言ggplot2 (二) 坐标軸設定

ggplot2畫圖種有時候需要調整坐标系,ggplot2有幾種坐标軸,如笛卡爾坐标、極坐标等

以條形圖為例,首先我們看基本的笛卡爾坐标,coord_cartesian()設定笛卡爾坐标,大部分集合圖形預設是此坐标。

P <- ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity") 
P + coord_cartesian(xlim=NULL,ylim=NULL)                  #xlim和ylim設定坐标軸的取值範圍
           
R語言ggplot2 (二) 坐标軸設定

coord_flip()可以将x軸和y軸對換,就是将圖形順時針旋轉90度,再将最上面的坐标軸移到最下面的效果。

ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity") + coord_cartesian()+ coord_flip()
           
R語言ggplot2 (二) 坐标軸設定

coord_trans設定坐标轉換,可以設定log2、log10、sqrt等。也可以設定坐标軸取值範圍。詳細可檢視:https://ggplot2.tidyverse.org/reference/coord_trans.html

coord_equal(ratio=1) 可以設定x和y軸相等形式,圖形會産生縮放,ratio可以調整縮放比例。

p <- ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity") + coord_cartesian()  
p +  coord_trans(x="log2",y="sqrt",limx=NULL,limy=NULL) 
#這裡也可以用scale_x_log2()這種形式代替
           
R語言ggplot2 (二) 坐标軸設定

其次是極坐标,coord_polar()設定極坐标,如雷達圖等等。

R語言ggplot2 (二) 坐标軸設定
> p <- ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity")  
> p + coord_polar(theta="y",start=0,direction=1) 
 #theta設定外延的坐标軸,start設定其實坐标,direction設定方向,1為順時針,-1為逆時針
           
R語言ggplot2 (二) 坐标軸設定