r - 使用虚线在 `stat_smooth` 中追踪 `se` 阴影
问题描述
使用以下方法绘制线性回归stat_smooth
:
set.seed(10)
df <- data.frame(x=1:10,y=runif(10))
ggplot(df,aes(x=x,y=y))+
geom_point()+
stat_smooth(method='lm',se=TRUE)
ggsave('/test.eps')
如果我设置se=TRUE
,阴影区域的那些不能保存为eps
文件。还有其他aes
可以描述的区域se
吗?如:用两条虚线描出阴影(回归预测的上下界)。我不希望使用阴影。
解决方案
正如您已经注意到的,eps 格式不支持透明度。但是,您可以提供参数来stat_smooth
消除透明度(例如alpha=1
)并更改 SE 的填充颜色(fill="lightgrey"
)。
或者,您可以提供除函数之外geom_smooth
的其他几何图形stat_smooth
。例如,您可以尝试geom="crossbar"
(或“errobar”、“linerange”、“pointrange”、“ribbon”)。但是,要获得所需的结果,您可能需要将不同的调用stat_smooth
与不同的几何图形结合起来。
最后,您可以手动计算 CI 并使用geom_lines
.
library(tidyverse)
set.seed(10)
df <- data.frame(x = 1:10, y = runif(10))
lmdf <- predict(lm(y ~ x, df), interval = "conf") %>%
as.data.frame %>%
mutate(x = df$x) %>%
pivot_longer(1:3, names_to = "line", values_to = "y")
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_line(data = lmdf, aes(group = line, linetype = line), lwd = 1.2) +
scale_linetype_manual(values = c("solid", "dashed", "dashed"))
推荐阅读
- python - 如何通过与 df.mean pandas 链接将指数值转换为数字?
- html - 将屏幕拆分为网格并相对垂直和水平对齐项目
- ionic3 - 无法安装“phonegap-plugin-push”:未定义的 ionic3
- android - 通知中的频道 ID 和频道名称有什么区别
- android - 当我们使用滚动视图和回收器视图时
- django - 如何放置结束标签在 django 形式的“输入”标签中?
- android - 如何在android中使用socket.io连接网络套接字协议
- python - 双击启动脚本时导入熊猫无法正常工作
- sql - 小数点后四舍五入到小数点后
- apache - 在 Java Spring Web 应用程序中未获取客户端的 IP 地址