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

简介: 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()

相关文章
|
11月前
|
前端开发 UED 开发者
React 滚动监听 Scroll Listener
本文介绍React中实现滚动监听的方法,涵盖基本概念、常见问题及解决方案。通过监听`window`对象的`scroll`事件,开发者可以在用户滚动时触发自定义逻辑。文章详细探讨了冗余调用、组件卸载时未清理事件监听器、滚动位置不一致等常见问题,并提供了防抖、节流、保存滚动位置等解决方案。同时,强调了跨浏览器兼容性和性能优化的重要性,帮助开发者在实际项目中更好地实现滚动监听功能。
255 17
|
编解码 监控
Zoom + OBS + B 站直播配置
Zoom + OBS + B 站直播配置
|
SQL 网络协议 数据库
SQL Server 2019下载安装教程
SQL Server 2019下载安装教程
3886 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
DynamicCity:上海AI Lab开源4D场景神器助力自动驾驶场景!128帧动态LiDAR生成,1:1还原城市早晚高峰
DynamicCity 是上海 AI Lab 推出的 4D 动态场景生成框架,专注于生成具有语义信息的大规模动态 LiDAR 场景,适用于自动驾驶、机器人导航和交通流量分析等多种应用场景。
278 1
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的报价与报价管理模块解析
【7月更文挑战第25天】 ERP系统中的报价与报价管理模块解析
1068 3
|
11月前
|
监控 数据可视化 数据挖掘
惊叹!燕云十六声运营团队靠它提升工作效率!
在游戏行业竞争激烈的2025蛇年新春,燕云十六声团队通过选择合适的可视化协作软件实现了高效工作。板栗看板以其高度可视化的任务管理、灵活的任务分配和强大的文件管理功能脱颖而出。Trello、Asana、Monday.com、Zeplin和Slack等工具也各具特色,提供了丰富的插件、权限管理和实时沟通等功能,助力团队应对巨大工作量和协作挑战,提升工作效率,打造更优质的游戏产品。
512 12
|
SQL 监控 小程序
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
444 58
|
12月前
|
Linux API 开发工具
魔搭llamafile集成:让大模型开箱即用
Llamafile是一个将大模型和其所需运行环境,全封装在一个可执行文件中的开源创新项目。为了方便广大开发者能以更低的门槛使用大模型,魔搭社区上提供了大量优秀模型的llamafile格式。
400 5
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
|
网络协议 安全 网络安全
震惊!Python Socket竟能如此玩转网络通信,基础到进阶全攻略!
【9月更文挑战第12天】在网络通信中,Socket编程是连接不同应用与服务的基石。本文通过问答形式,从基础到进阶全面解析Python Socket编程。涵盖Socket的重要性、创建TCP服务器与客户端、处理并发连接及进阶话题如非阻塞Socket、IO多路复用等,帮助读者深入了解并掌握网络通信的核心技术。
427 6