在ggplot中转换x,y坐标空间

我知道您可以使用coord_trans()变换图的坐标,甚至可以沿两个轴执行坐标变换(例如coord_trans(x = "log10",y = "log10")),但是有一种方法可以执行坐标变换取决于两个轴的值,例如剪切力?

我知道我可以在使用类似以下示例的ggforce::linear_trans()这样的数据将数据传递到ggplot之前执行线性变换:

trans <- linear_trans(shear(1,0))
square <- data.frame(x = c(0,1,1),y = c(0,0))
square2 <- trans$transform(square$x,square$y)
ggplot(square2,aes(x,y)) +
    geom_polygon(colour = 'black')

但是,我希望有一种方法可以编写自定义坐标系,从而无需预先转换数据,例如:

square <- data.frame(x = c(0,0))
ggplot(square,y)) +
    geom_polygon(colour = 'black') +
    coord_shear(x=1)
meihaoyong 回答:在ggplot中转换x,y坐标空间

我实现了一个自定义协调器。它需要一个由ggforce::linear_trans产生的变压器,并将其应用于ggplot。在我的Deeptime软件包here中进行检查。

本文链接:https://www.f2er.com/3092214.html

大家都在问