如何从R中的平滑图中提取数据?
使用qplot()函数平滑绘图后,需要提取新的“平滑”数据。我无法从平滑的数据构建数据帧 绘图是平滑的,但是通过构建数据帧,我得到了一条错误消息 我用这个使情节变得平滑如何从R中的平滑图中提取数据?,r,ggplot2,R,Ggplot2,使用qplot()函数平滑绘图后,需要提取新的“平滑”数据。我无法从平滑的数据构建数据帧 绘图是平滑的,但是通过构建数据帧,我得到了一条错误消息 我用这个使情节变得平滑 qq <- qplot(x4,y4, geom='smooth', span =0.5) 我得到了信息: Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : cannot coe
qq <- qplot(x4,y4, geom='smooth', span =0.5)
我得到了信息:
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) :
cannot coerce class ‘c("gg", "ggplot")’ to a data.frame
ggplot::geom_smooth
根据数据集的大小或用户的规格,使用不同的底层函数来计算平滑度。对于一个小数据集,它使用stats::leuch
,因此您可以通过自己运行stats::leuch
来获取该信息
例如,以下是基于mtcars数据集的平滑ggplot:
library(tidyverse)
plot.data <- ggplot(data = mtcars, aes(x = mpg, y = wt)) +
geom_point() +
geom_smooth(span = 0.5)
print(plot.data)
正如我们通过绘制它所看到的,这与ggplot自己所做的是相同的
plot.fit <- ggplot(data = loess.df, aes(x = mpg, y = fit)) +
geom_line() +
geom_ribbon(aes(ymin = fit - se, ymax = fit + se), alpha = 0.5)
print(plot.fit)
plot.fit可能是更直接的解决方案,可以使用stat\u smooth
qq <- qplot(x4,y4, geom='smooth', span =0.5) + stat_smooth()
qq
plot.fit <- ggplot(data = loess.df, aes(x = mpg, y = fit)) +
geom_line() +
geom_ribbon(aes(ymin = fit - se, ymax = fit + se), alpha = 0.5)
print(plot.fit)
qq <- qplot(x4,y4, geom='smooth', span =0.5) + stat_smooth()