ggtern error -> error-geom-point-requires-the-following-missing-esthetics-x-and-y

uqxowvwt  于 2023-06-19  发布在  其他
关注(0)|答案(3)|浏览(148)

ggtern在运行新的ggplot 2时似乎有问题。我试过加载R、ggtern和ggplot 2的早期版本,但无法使它们工作。在最新版本中,我得到以下错误:
错误:geom_point需要以下缺失的美学:x和y

rlang::last_error()
<error/rlang_error>
geom_point requires the following missing aesthetics: x and y
Backtrace:

(function (x, ...) ...
ggtern:::print.ggplot(x)
ggtern:::ggplot_build.ggplot(x)
ggtern:::by_layer(function(l, d) l$compute_geom_1(d))
ggtern:::f(l = layers[[i]], d = data[[i]])
l$compute_geom_1(d)
ggplot2:::f(..., self = self)
ggplot2:::check_required_aesthetics(...)

rlang::last_trace()
<error/rlang_error>
geom_point requires the following missing aesthetics: x and y
Backtrace:
x

+-(function (x, ...) ...
-ggtern:::print.ggplot(x)
+-ggtern::ggplot_build(x)
-ggtern:::ggplot_build.ggplot(x)

\-ggtern:::by_layer(function(l, d) l$compute_geom_1(d))

  \-ggtern:::f(l = layers[[i]], d = data[[i]])

    \-l$compute_geom_1(d)

      \-ggplot2:::f(..., self = self)

        \-ggplot2:::check_required_aesthetics(...)

我也尝试在ggplot 2之前加载ggtern,并加载每个包的早期版本以及R和RStudio。
救命啊!!!

fykwrbwg

fykwrbwg1#

ggtern与ggplot2的最新版本不兼容。您应该使用版本3.2.1(或者版本3.3.0)

require(devtools)
install_version("ggplot2", version = "3.2.1", repos = "http://cran.us.r-project.org")

如果你需要其他 Package 的整齐的诗句,你将不得不单独加载它们。

mw3dktmi

mw3dktmi2#

我发现让ggtern再次工作的版本组合是:
R 4.0.2 ggplot2:3.3.2 ggtern:3.3.0 -忽略警告...
尊敬骑士16

iugsix8n

iugsix8n3#

尝试安装一个版本的R > 4.0,重新启动计算机,然后重新运行脚本。ggtern在我去年使用R 3.6版本时就不起作用了。新安装和重新启动后,它工作正常。如果这不是问题所在,那么您的代码有问题。参见以下示例。

安装加载ggtern

install.packages("ggtern")   
library(ggtern)

http://www.ggtern.com/d/2.2.2/ggtern.html重新创建此简单图。如果您没有得到数据点位于中心的三元图的输出,则存在上述版本问题。

ggtern(data=data.frame(x=1,y=1,z=1),aes(x,y,z)) + geom_point()

ternary plot example

**创建用于绘图的示例数据集。**注意,x + y + z之和通常> 1,表明使用ggtern plot函数时,输入数据将自动归一化。

xdata <- c(64, 50, 50, 99)
ydata <- c(36, 50, 50,  1)
zdata <- c(19, 50,  0, 01)
df <- data.frame(xdata, ydata, zdata)

**plot数据并在ggtern调用中定义aes。**这类似于ggplot的理想语法:https://community.rstudio.com/t/error-geom-point-requires-the-following-missing-aesthetics-x-y/26224

plot <- ggtern(data = df, mapping = aes(x = xdata, y = ydata, z = zdata)) + geom_point() 
plot

ternary plot example 2
如果您想将数据从笛卡尔空间转换为三进制空间,或者从三进制空间转换为笛卡尔空间,您也可以在此链接的“tternary_transformation”标题下找到指导:http://www.ggtern.com/docs/

相关问题