在哪种情况下,在ggplot2的coord_trans中使用数据转换,比例转换和坐标转换会很有用?他们有什么区别?下面是一些示例:
ggplot(diamonds, aes(log10(carat), log10(price))) +
geom_point()
ggplot(diamonds, aes(carat, price)) +
geom_point() +
scale_x_log10() +
scale_y_log10()
ggplot(diamonds, aes(carat, price)) +
geom_point() +
coord_trans(x = "log10", y = "log10")
比例转换发生在任何统计计算之前,因此统计计算基于比例转换的数据。这是否令人满意取决于您。
您可以在以下图表的异常值中看到。
同样,比例转换会影响轴断裂,而坐标转换不会影响轴断裂;注意y轴标签。这与aes()
调用中的数据转换也有区别,即您的轴标签仍反映原始数据空间。
[通常,您可以说,如果只想进行视觉转换,可以使用coord_trans()
,而如果要进行数据转换,则可以使用比例转换。
library(ggplot2)
library(patchwork)
#> Warning: package 'patchwork' was built under R version 3.6.3
p1 <- ggplot(diamonds, aes(cut, price)) +
geom_boxplot()
p2 <- p1 +
scale_y_continuous(trans = "log10")
p3 <- p1 +
coord_trans(y = "log10")
p1 + p2 + p3
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9jd0pUVHlILnBuZyJ9” alt =“”>
由reprex package(v0.3.0)在2020-04-13创建
与比例尺中的oob
参数有关,在比例尺和坐标中设置极限也有区别。