ggplot2 scale相关设置-坐标转换

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转换设置过程相对比较简单,而且频率可能也相对较少,稍作了解即可。 
 
原文地址:https://www.cnblogs.com/wkslearner/p/5648521.html