ggplot2 scale相关设置-坐标转换
在R中坐标轴转换有多种形式,包括对数转换,平方根转换以及坐标刻度前后进行调换
用到的函数分别有:
scale_x_log10(...)
scale_y_log10(...)
scale_x_sqrt(...)
scale_y_sqrt(...)
scale_x_reverse(...)
scale_y_reverse(...)
以上几个函数其实基于
scale_x_continuous(name = waiver(), breaks = waiver(), minor_breaks = waiver(), labels = waiver(), limits = NULL, expand = waiver(), oob = censor, na.value = NA_real_, trans = "identity")
中的 参数trans 可以实现相同的效果
以iris数据集为例
p<-ggplot(iris,aes(Petal.Length,Petal.Width))+geom_point()
p
标准情况下的效果
p+scale_x_log10()
p+scale_x_continuous(trans="log10")
以上两行代码实现的效果是相同的,即对函数x轴做对数转换,效果如下
另外,配合scales包,可以进行更丰富的scale设置
library(scales)
p+scale_x_continuous(trans=log2_trans(),labels=percent)
另外,借助coord_trans()函数,可以直接对x和y轴进行不同设置
p+scale_x_continuous(trans=log2_trans(),labels=percent)+
scale_y_continuous(labels=dollar)
p+coord_trans(x="log2",y="sqrt")
以上是最后两个函数的画图效果。
总体而言,scale转换设置过程相对比较简单,而且频率可能也相对较少,稍作了解即可。