几周前我发现ggforce
,它具有绘制椭圆的强大功能。但我没有设法在对数图中使用它。这是一个例子:
我想用椭圆圈出这个组
library(ggforce)
library(ggplot2)
ggplot(mtcars)+
geom_point(aes(hp,disp))+
geom_ellipse(aes(x0 = 230, y0 = 450, a = 80, b = 30, angle = -10))
但我想在对数图中执行此操作。如果我天真地做
ggplot(mtcars)+
geom_point(aes(hp,disp))+
geom_ellipse(aes(x0 = 230, y0 = 450, a = 80, b = 30, angle = -10))+
scale_y_log10()
我得到一个巨大的椭圆:
看起来椭圆参数没有对数转换。我可以尝试减少参数轴以在对数轴上获得合适的大小,例如:
ggplot(mtcars)+
geom_point(aes(hp,disp))+
scale_y_log10()+
geom_ellipse(aes(x0 = 230, y0 = 450, a = 80, b = 0.05, angle =0))
哪个有效:
但前提是角度为0。如果不是,则两个wxis混合在一起,我无法得到我想要的椭圆:
ggplot(mtcars)+
geom_point(aes(hp,disp))+
scale_y_log10()+
geom_ellipse(aes(x0 = 230, y0 = 450, a = 80, b = 0.05, angle = -10))
如何在 ggplot 的日志或对数图中绘制椭圆?是否有任何可行的解决方法ggforce
?有没有其他“简单”的解决方案(除了在半对数坐标中编码椭圆)?