r - 在现有散点图中添加不同的线
问题描述
我正在努力将不同策略组的抑郁率的不同平均线(使用不同颜色)添加到现有散点图中。例如,如果我想为无限制组添加抑郁平均线。
这是我随机截屏的数据集:
我的代码是这样的:
ggplot(covid_depression_2020_policy, aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`)) +
geom_point(alpha=0.8)
解决方案
使用 geom_smooth() 的最佳拟合线
要将平均线添加到 ggplot 的散点图中,您可以使用geom_smooth()
,它给出“平滑条件均值”或每个给定条件的最佳拟合线。
ggplot(covid_depression_2020_policy,
aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`)) +
geom_point(alpha=0.8) +
geom_smooth()
color = `Large Gatherings Ban`
由于在 的美学中指定的参数ggplot()
(即),将为每个“禁止大型聚会”组创建不同颜色的线aes(...)
。
如果您只想要一行Large Gatherings Ban == "No Limit"
,您可以在数据中指定它geom_smooth()
,如下所示:
geom_smooth(data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == "No Limit"))
dplyr::filter()
用于对数据集中的行进行子集化,以便仅满足列条件。
根据您尝试可视化数据的方式,其中使用的一些常见参数geom_smooth(...)
包括method = lm
(用于最佳拟合直线)或se = FALSE
(用于删除默认置信区间功能区)。运行?ggplot2::geom_smooth()
以查看更多选项。
使用 geom_hline() 的水平平均线
您可能想要创建一条没有斜率的平均线,因为您的“位置”是一个名义上的分类变量,没有有意义的顺序。因此,这里有一个斜率是没有意义的。在这种情况下,您可能希望使用geom_hline()
为每个“大型聚会禁令”组绘制一条水平线。
ggplot(covid_depression_2020_policy,
aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`)) +
geom_point(alpha=0.8) +
geom_hline(
data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == "No Limit"),
aes(yintercept = mean(Depression.2020), color = `Large Gatherings Ban`)) +
geom_hline(
data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == ">50 Prohibited"),
aes(yintercept = mean(Depression.2020), color = `Large Gatherings Ban`))
geom_hline(...)
只制作一行,因此您必须为每个“大型聚会禁令”组添加它。
推荐阅读
- sharepoint - “用户名”参数无效。连接到 SharePoint Online Manager 时
- angularjs - 如何在 AngularJs 1.7.x 中从一个控制器调用方法到另一个控制器,以刷新 UI 数据
- python - Python shell 日志命令未显示在 docker/kubernetes pod 中
- java - 我们如何在 weblogic 服务器中获取历史线程转储
- mysql - mysql - 在存储过程动态查询中使用 Concat
- android-studio - CommandInvokationFailure:重新打包资源失败。Unity MAC 构建问题
- sql-server - 我需要这个函数的postgresql版本
- silverstripe - 服务器迁移后,Silverstripe 4 在尝试上传文件时抛出错误
- visual-studio - 如何在 Xaml 的网格中放置边框?
- javascript - 消耗大量内存的 HTML 页面