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轉換設置過程相對比較簡單,而且頻率可能也相對較少,稍作了解即可。
