ggtern破坏ggplot2并生成没有轴标签等的图表。

4

我注意到自从ggplot2发布了新版本(3.3.0)后,我不能再使用ggtern包,因为它会完全破坏我用ggplot2生成的所有图。

library(ggplot2)
df <- data.frame("x" = c(1,2), "y" = c(2,1))
ggplot(df, aes(x,y)) + geom_point()

这将生成一个正常的图形: normal ggplot

但是,当我加载ggtern之后,我得到了以下结果:

library(ggtern)
ggplot(df, aes(x,y)) + geom_point()

没有轴等内容: 加载ggtern后的ggplot

即使我解除挂载ggtern,它也会保持这种状态,因此我必须重新启动R才能再次生成正常的绘图。

一个解决方法是降级ggplot2到较旧的版本(即3.2.1版本),但这也有其他缺点。

是否有另一种解决方法,可以使用当前的ggplot2版本和ggtern


1
我认为ggtern与最新的ggplot2版本不兼容,在ggplot2的github上有关于此的讨论:https://github.com/tidyverse/ggplot2/issues/3561#issuecomment-5986825191 - teunbrand
谢谢提供链接!希望能找到解决方案。看起来在此期间,我将不得不坚持使用ggplot2版本3.2.1。 - Servus
嘿,我正在使用ggtern_3.1.0和ggplot2_3.2.1,没有看到这个问题。 - StupidWolf
没错,由于ggtern覆盖了ggplot2的函数并且ggplot2已经更新了它的代码,所以现在ggtern破坏了ggplot2。ggtern不会对旧版本的ggplot造成任何问题。 - teunbrand
1
还有这个问题。在项目的Bitbucket上开了一个问题:https://bitbucket.org/nicholasehamilton/ggtern/issues/13/ggtern-breaks-ggplots-plot - Daniel
在Rstudio中,如果脚本中有gtern::gtern,则会导致ggplot无法正常运行,甚至在运行该代码行之前。这是如何可能的?是Rstudio自动预加载软件包吗? - Joost Keuskamp
1个回答

0

这是我找到的一个解决方法。我将绘图保存在变量p中,然后调用ggplot2:::plot.ggplot(p)。这样至少可以让我的轴标签显示出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接