- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有一种简单的方法可以将虚线从实线回归线的末端延伸到预测值?
以下是我的基本尝试:
x = rnorm(10)
y = 5 + x + rnorm(10,0,0.4)
my_lm <- lm(y~x)
summary(my_lm)
my_intercept <- my_lm$coef[1]
my_slope <- my_lm$coef[2]
my_pred = predict(my_lm,data.frame(x = (max(x)+1)))
ggdf <- data.frame( x = c(x,max(x)+1), y = c(y,my_pred), obs_Or_Pred = c(rep("Obs",10),"Pred") )
ggplot(ggdf, aes(x = x, y = y, group = obs_Or_Pred ) ) +
geom_point( size = 3, aes(colour = obs_Or_Pred) ) +
geom_abline( intercept = my_intercept, slope = my_slope, aes( linetype = obs_Or_Pred ) )
这没有给出我希望看到的输出。我看过其他一些答案,但没有看到任何简单的东西。我想出的最好的答案是:
ggdf2 <- data.frame( x = c(x,max(x),max(x)+12), y = c(y,my_intercept+max(x)*my_slope,my_pred), obs_Or_Pred = c(rep("Obs",8),"Pred","Pred"), show_Data_Point = c(rep(TRUE,8),FALSE,TRUE) )
ggplot(ggdf2, aes(x = x, y = y, group = obs_Or_Pred ) ) +
geom_point( data = ggdf2[ggdf2[,"show_Data_Point"],] ,size = 3, aes(colour = obs_Or_Pred) ) +
geom_smooth( method = "lm", se=F, aes(colour = obs_Or_Pred, linetype=obs_Or_Pred) )
这给出了正确的输出,但我必须包含一个额外的列来指定是否要显示数据点。如果不这样做,我最终会得到这两个图中的第二个,它在拟合回归线的末尾有一个额外的点:
是否有更简单的方法来告诉 ggplot 从线性模型中预测单个点并为其绘制虚线?
最佳答案
您可以仅使用实际数据绘制点并构建预测数据框来添加线条。请注意,max(x)
出现两次,因此它可以是 Obs
线和 Pred
线的端点。我们还使用 shape
美学,以便我们可以删除原本会出现在 Pred
图例键中的点标记。
# Build prediction data frame
pred_x = c(min(x),rep(max(x),2),max(x)+1)
pred_lines = data.frame(x=pred_x,
y=predict(my_lm, data.frame(x=pred_x)),
obs_Or_Pred=rep(c("Obs","Pred"), each=2))
ggplot(pred_lines, aes(x, y, colour=obs_Or_Pred, shape=obs_Or_Pred, linetype=obs_Or_Pred)) +
geom_point(data=data.frame(x,y, obs_Or_Pred="Obs"), size=3) +
geom_line(size=1) +
scale_shape_manual(values=c(16,NA)) +
theme_bw()
关于r - ggplot : Extend regression line to predicted value with different linetype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911055/
我试图以如下方式绘制代表来自两组 y1 和 y2 的观察结果的线: 两组具有不同的线条颜色(标记在图例上) 两组具有不同的线型(标记在图例上) 图有误差条,误差条在 中是实线, 和 组 生成一些数据的
我无法使用多个平滑器 (stat_smooth()) 更改当前绘图的颜色和线型 这里是数据结构的概述: serviceInstanceName timestamp
我有一个制表符分隔的数据文件,其中包含许多(双空行分隔)数据集,我想为每个数据集绘制一条线。我希望能够设置线型(我指的是实线/虚线/虚线)。我希望每条线都是不同的颜色。 我可以使用这个绘制它们所有不同
我正在按照上一个 Stackoverflow 问题中的描述绘制数据: gnuplot 2D polar plot with heatmap from 3D dataset - possible? 大多
有没有一种简单的方法可以将虚线从实线回归线的末端延伸到预测值? 以下是我的基本尝试: x = rnorm(10) y = 5 + x + rnorm(10,0,0.4) my_lm <- lm(y~x
我正在尝试创建一个类似于此的图表。 但是,我收到错误“错误:无法将连续变量映射到线型” 这是我的代码: combined.dframe % filter(Sample ==
我是一名优秀的程序员,十分优秀!