【问题标题】:plotting log(10) lengths differ绘制 log(10) 长度不同
【发布时间】:2020-05-19 15:08:23
【问题描述】:

我很难在现有数据点上绘制 log(10) 公式。我根据数据列表导出了一个对数函数,其中“Tout_F_6am”是我的自变量,“clo”是我的因变量。 当我去绘制它时,我得到长度 x 和 y 不同的错误。有人可以帮我找出问题所在吗?

logKT=lm(log10(clo)~ Tout_F_6am,data=passive)
summary(logKT) #r2=0.12
coef(logKT)

plot(passive$Tout_F_6am,passive$clo) #plot data points
x=seq(53,84, length=6381)#match length of x variable
y=logKT
lines(x,y,type="l",lwd=2,col="red")

length(passive$Tout_F_6am) #6381
length(passive$clo) #6381

另外,公式curve(-0.0219-0.005*log10(x),add=TRUE,col=2)可以写成eq=(10^-0.022)*(10^-0.005*x)吗?谢谢!

【问题讨论】:

标签: r


【解决方案1】:

问题在于您正在尝试绘制模型对象,而不是模型的预测。试试这样的:

在数据框(或小标题)中定义要绘制的解释值。它不必与数据点一样多。

library(dplyr)
explanatory_data <- tibble(
  Tout_F_6am = seq(53, 84, 0.1)
)

使用predict() 添加一列预测值。这需要一个模型和您的解释性数据。 predict() 将返回转换后的值,因此您必须对其进行反向转换。

prediction_data <- explanatory_data %>%
  mutate(
    log10_clo = predict(logKT, explanatory_data),
    clo = 10 ^ log10_clo
  )

最后,画出你的情节。

plot(clo ~ Tout_F_6am, data = prediction_data, log="y", type = "l")

使用 ggplot2 绘图实际上更容易。这应该或多或少地为您提供您想要的。

library(ggplot2)
ggplot(passive, aes(Tout_F_6am, clo)) +
  geom_point() +
  geom_smooth(method = "lm") +
  scale_y_log10()

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多