我知道您可以使用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)