注解_logticks()和coord_flip()似乎不兼容

Dre*_*een 5 r ggplot2

我收到一个错误,似乎在同一情节上使用annotation_logticks()和合并了coord_flip()。例如:

ggplot(mtcars, aes(x=mpg, y=disp)) + 
  geom_line() + 
  annotation_logticks(sides="l") +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

给出错误Error in unit(yticks$y, "native") : 'x' and 'units' must have length > 0traceback()给出的结果我不太了解,但似乎与分配单位有关。

另一方面,annotation_logticks()或者coord_flip() 单独使用也不会造成任何问题。

ggplot(mtcars, aes(x=mpg, y=disp)) + 
  geom_line() + 
  annotation_logticks(sides="l") #+
  #coord_flip()
Run Code Online (Sandbox Code Playgroud)

可以正常工作

ggplot(mtcars, aes(x=mpg, y=disp)) + 
  geom_line() + 
  #annotation_logticks(sides="l") #+
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

我可以切换xy映射来避免coord_flip(),但这不是理想的(annotation_logticks()例如,如果要添加,则必须重写旧图)。

teu*_*and 2

现在这个 PR已经在 ggplot2 版本 3.3.4 中修复了这个问题。

library(ggplot2)

ggplot(mtcars, aes(x=mpg, y=disp)) + 
  geom_line() + 
  annotation_logticks(sides="l") +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v2.0.0)创建于 2021-08-29