ggplot2画图种有时候需要调整坐标系,ggplot2有几种坐标轴,如笛卡尔坐标、极坐标等
以条形图为例,首先我们看基本的笛卡尔坐标,coord_cartesian()设置笛卡尔坐标,大部分集合图形默认是此坐标。
P <- ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity")
P + coord_cartesian(xlim=NULL,ylim=NULL) #xlim和ylim设置坐标轴的取值范围
coord_flip()可以将x轴和y轴对换,就是将图形顺时针旋转90度,再将最上面的坐标轴移到最下面的效果。
ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity") + coord_cartesian()+ coord_flip()
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()这种形式代替
其次是极坐标,coord_polar()设置极坐标,如雷达图等等。
> p <- ggplot(mpg,aes(cyl,hwy)) + geom_bar(stat="identity")
> p + coord_polar(theta="y",start=0,direction=1)
#theta设置外延的坐标轴,start设置其实坐标,direction设置方向,1为顺时针,-1为逆时针