【问题标题】:Problems with ggplot2 and geom_errorbar()ggplot2 和 geom_errorbar() 的问题
【发布时间】:2018-04-03 12:53:01
【问题描述】:

您好, 我很难使用 ggplot2 和 geom_error 函数。 我有一个包含个人(行)和大小(第 1 列)和密度(第 2 列)的数据框。我的目标是在二次模型中绘制密度对大小的影响。 lm(大小〜多边形(密度,2,原始=真)) 就我使用的那件事而言。

ggplot(df, aes(x = density, y = size, col = Sexo)) + 
geom_smooth(method = lm, formula = y ~ x + I(x^2), size = 1)+                      
geom_point())

一切顺利。但现在我想用geom_errorbar 绘制相同的数据集。我试过了。

ggplot(cg.cvic, aes(x = as.factor(density), y = size, col = sex)) + 
    geom_errorbar(ymin = size-sd, ymax = size + sd))   

我正在回答:

大小错误 - sd:二进制运算符的非数字参数

我做错了什么?

【问题讨论】:

  • 根据您对数据的描述,您没有列名sd。没有这个,当你告诉ggplot2size - sd,它唯一能找到的sd是标准差函数sd()。由于没有为函数定义减法,因此您会收到关于将非数字(函数sd)提供给二元运算符(减法)的错误。

标签: r ggplot2


【解决方案1】:

首先,您的数据框中没有sd 列。此外,R 内置了函数sd,它不是变量或数字的函数。因此,从 R 的角度来看,您正在尝试将变量添加到函数中,因此 R 会告诉您其中一个参数是非数字的,并且您正在尝试对他执行只能对数字执行的操作。您已经以某种方式提取了模型预测的标准偏差,将其写入您的数据框中,然后在 ggplot 中使用它。不要将其命名为sd,使用其他名称。

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多