ggplot2|详解八大基本绘图要素(三)

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: ggplot2|详解八大基本绘图要素

本文首发于“生信补给站”公众号 https://mp.weixin.qq.com/s/UMuZ1MiuKDheHk9mwA9EXA

五 统计变换(Statistics)

ggplot2提供了多种统计变换方式,此处介绍两种较常用的。

1 stat_summary

要求数据源的y能够被分组,每组不止一个元素, 或增加一个分组映射,即aes(x= , y = , group = )

library(Hmisc)
g <- ggplot(mtcars,aes(cyl, mpg)) + geom_point()
#mean_cl_bool对mpg进行运算,返回均值,最大值,最小值;其他可用smean.cl.normal,smean.sdl,smedian.hilow。
g + stat_summary(fun.data = "mean_cl_boot", color = "red", size = 2)

#fun.y 对y的汇总函数,返回单个数字,y通常会被分组汇总后每组返回1个数字

g + stat_summary(fun.y = "mean", color = "red", size = 2, geom = "point") # 计算各组均值


# 增加1组颜色变量映射,然后求均值并连线

g + aes(color = factor(vs)) + stat_summary(fun.y = mean, geom = "line")

#fun.ymax 表示取y的最大值,输入数字向量,每组返回1个数字

g + stat_summary(fun.y = mean, fun.ymin = min, fun.ymax = max, color = "red") # 计算各组均值,最值

2 stat_smooth

对原始数据进行某种统计变换计算,然后在图上表示出来,例如对散点图上加一条回归线。

#添加默认曲线

#method 表示指定平滑曲线的统计函数,如lm线性回归, glm广义线性回归, loess多项式回归,

 

gam广义相加模型(mgcv包), rlm稳健回归(MASS包)
ggplot(mpg, aes(displ, hwy)) +geom_point() +stat_smooth()
ggplot(mpg, aes(displ, hwy)) +geom_point() +geom_smooth() +stat_smooth(method = lm, se = TRUE)

#formula 表示指定平滑曲线的方程,如 y~x, y~poly(x, 2), y~log(2) ,需要与method参数搭配使用

ggplot(mpg, aes(displ, hwy)) +geom_point() +stat_smooth(method = lm, formula = y ~ splines::bs(x, 3), se = FALSE)

#se 表示是否显示平滑曲线的置信区间,默认TRUE显示;level = 0.95

ggplot(mpg, aes(displ, hwy, color = class))  + geom_point() + stat_smooth(se = FALSE, method = lm)

注:以下为ggplot2提供的其他统计变换方式,也可以自己写函数基于原始数据进行计算。

stat_abline       stat_contour      stat_identity     stat_summary
stat_bin          stat_density      stat_qq           stat_summary2d
stat_bin2d        stat_density2d    stat_quantile     stat_summary_hex
stat_bindot       stat_ecdf         stat_smooth       stat_unique
stat_binhex       stat_function     stat_spoke        stat_vline
stat_boxplot      stat_hline        stat_sum          stat_ydensity


六 坐标系统(Coordinante)

坐标系统控制坐标轴,可以进行变换,例如XY轴翻转,笛卡尔坐标和极坐标转换,以满足我们的各种需求。

1 coord_flip()实现坐标轴翻转

ggplot(diamond)+geom_bar(aes(x=cut, fill=cut))+coord_flip()

2 coord_polar()实现极坐标转换

#靶心图

ggplot(diamond)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()

#饼图

ggplot(diamond)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")

#风玫瑰图(windrose)

ggplot(diamond)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()

相关文章
|
8月前
|
前端开发 UED 开发者
React 滚动监听 Scroll Listener
本文介绍React中实现滚动监听的方法,涵盖基本概念、常见问题及解决方案。通过监听`window`对象的`scroll`事件,开发者可以在用户滚动时触发自定义逻辑。文章详细探讨了冗余调用、组件卸载时未清理事件监听器、滚动位置不一致等常见问题,并提供了防抖、节流、保存滚动位置等解决方案。同时,强调了跨浏览器兼容性和性能优化的重要性,帮助开发者在实际项目中更好地实现滚动监听功能。
213 17
|
SQL 网络协议 数据库
SQL Server 2019下载安装教程
SQL Server 2019下载安装教程
3077 0
|
11月前
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
756 3
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的报价与报价管理模块解析
【7月更文挑战第25天】 ERP系统中的报价与报价管理模块解析
810 3
|
Java API 项目管理
Java一分钟之-Gradle插件开发:自定义构建逻辑
【6月更文挑战第5天】Gradle插件开发详解:从入门到发布。文章介绍如何创建自定义插件,强调依赖管理、任务命名和配置阶段的理解。示例代码展示插件实现及避免常见问题的方法。最后,讨论插件的发布与共享,助你提升构建效率并贡献于开发者社区。动手实践,打造强大Gradle插件!
269 3
|
人工智能 自然语言处理 机器人
Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人
Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人
Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人
|
SQL 数据库
SQL DISTINCT 用法总结
SQL DISTINCT 用法总结
4349 3
|
JavaScript 前端开发
【Web 前端】网页上有 5 个div元素,如何使用JQ来选择它们?
【5月更文挑战第1天】【Web 前端】网页上有 5 个div元素,如何使用JQ来选择它们?
Linux中的Base64编码与解码:`base64`命令详解
Linux的`base64`命令用于Base64编码和解码文本数据,常在邮件和HTTP中传输二进制信息。编码示例:`base64 input.txt`,解码示例:`base64 -d encoded.txt`或`echo &quot;SGVsbG8sIFdvcmxkIQo=&quot; | base64 -d`。注意,编码后数据会增大33%,且可能含换行符。广泛应用于多种系统和协议,如MIME。