R语言入门 | 使用 ggplot2 进行数据可视化
创作时间:
作者:
@小白创作中心
R语言入门 | 使用 ggplot2 进行数据可视化
引用
CSDN
1.
https://blog.csdn.net/mooridy/article/details/137018894
本文将介绍如何使用R语言的ggplot2包进行数据可视化。通过本文,读者将学习到如何创建基本的ggplot图形、使用不同的几何对象、进行图形属性映射、分面、位置调整等高级技巧。
准备工作
在开始之前,需要先安装并加载tidyverse包,其中包含了ggplot2以及其他一些常用的数据处理和可视化工具。
install.packages("tidyverse")
library(tidyverse)
R包只需安装一次,但每次开始新会话时都要重新加载。
数据框
数据框是变量(列)和观测(行)的矩形集合。下文经常使用mpg数据集,它包含了由美国环境保护协会收集的38种车型的观测数据。当你想了解mpg数据框的信息时,可使用?mpg来查阅。
创建ggplot图形
使用ggplot函数创建一个基本的散点图:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
ggplot(data = mpg):创建一张空白图geom_point():向图中添加一个点层,可以创建一张散点图。mapping参数:定义了如何将数据集中的变量映射为图形属性。aes()函数:aes()函数的x参数和y参数分别指定了映射到x轴的变量与映射到y轴的变量。
绘图模板
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))
<GEOM_FUNCTION>:例如geom_point用于创建散点图<MAPPINGS>:例如x=<变量名>,y=<变量名>,color=<变量名>,shape,size,alpha(透明度)
示例:
ggplot(data = diamonds) +
geom_point(mapping = aes(x=carat,y=price))
图形属性映射
可以将点的颜色映射为变量class:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
区分:
- 以手动为几何对象设置图形属性(常量):
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = "blue", shape=21, fill="red")
分面
facet_wrap()
按class变量分组,排成2行:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
facet_grid()
可以按多个分类变量进行分面:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)
几何对象
几何对象是图中用来表示数据的几何图形对象。我们经常根据图中使用的几何对象类型来描述相应的图。例如,条形图使用了条形几何对象,折线图使用了直线几何对象,箱线图使用了矩形和直线几何对象。
geom_point:散点图geom_smooth:平滑曲线图geom_bar:条形图
可以叠加使用:
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy)) +
geom_point(mapping = aes(x = displ, y = hwy))
在geom_smooth平滑曲线图中,可以按照不同的线型绘制出不同的曲线,每条曲线对应映射到线型的变量的一个唯一值:
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv))
参数说明:
linetype:线型groupcolor
控制选项:
show.legend=FALSE:不显示图例,位置:和mapping并列se=FALSE:不显示置信区间,位置:和mapping并列
位置调整
dodge
分开排列:
ggplot(data = diamonds) +
geom_bar(
mapping = aes(x = cut, fill = clarity),
position = "dodge"
)
identity
叠着排列,显示实际高度:
ggplot(data = diamonds) +
geom_bar(
mapping = aes(x = cut, fill = clarity),
position = "identity"
)
默认堆叠
默认情况下,条形图会堆叠显示:
jitter
适用于散点图,为每个数据点添加一个很小的随机扰动,这样就可以将重叠的点分散开:
ggplot(data = mpg) +
geom_point(
mapping = aes(x = displ, y = hwy),
position = "jitter"
)
对比没有使用jitter的:
画盒图
ggplot(data = mpg,mapping = aes(x = class, y = hwy)) +
geom_boxplot( aes(fill=class))
坐标系
旋转坐标系
使用coord_flip()函数可以旋转坐标系:
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
geom_boxplot() +
coord_flip()
绘制空间数据
使用geom_polygon()绘制空间数据:
nz <- map_data("nz") //取出新西兰地图
ggplot(nz, aes(long, lat, group = group)) +
geom_polygon(fill = "white", color = "black") +
coord_quickmap
极坐标
使用coord_polar()绘制极坐标图:
p<-ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, fill = cut))+coord_polar()
频率分布图
使用geom_freqpoly()绘制频率分布图:
ggplot(data = diamonds, mapping = aes(x = price)) +
geom_freqpoly(binwidth = 10)
热门推荐
圆桌|新能源出海2.0:新航向之下,如何规避新暗礁
如何准确评估二手房的价值?怎样理解评估差价的形成?
科技论文写作指南:从定义到格式的全面解析
TI-RADS2类是什么意思
安溪茶叶市场调研报告:探寻茶叶产业的发展之路与机遇
美国警方曾经的配枪之一:鲁格安全6型转轮手枪
心灵受过重大创伤的人的表现
研究表明:日常食用酸奶降低直肠癌风险,因改善肠道微生物群
骨科临床检查法(第2版)
标准集装箱尺寸(国际标准集装箱尺寸)
公司是否能成为股权转让的主体
《三个火枪手》:经久不衰的铁哥们传奇故事
维生素A的食物来源:从动物性食物到植物性食材
产妇能吃西瓜吗?这些注意事项要记牢
『早矫求知』牙齿不齐对孩子健康有哪些影响?家长必看!
秘密档案曝光!日军早就做好了屠城方案!
2025年快递产业发展现状分析及未来发展趋势预测
SHAP 分析的三种应用场景及其意义
肝功能检查单子怎么看 如何解读肝功能检查结果
驱动程序会对计算机性能产生哪些影响
预赚变预亏!鸿博股份业绩大变脸引监管轮番发函,扣非净利润连亏6年
鸿博股份业绩“大变脸” 警示函后再收深交所关注函
徐达与常遇春,从乡村匹夫到帝国双璧,却因一人家族命运截然不同
10种适合庭院种植的果树,让你的秋天好吃又好看!
婚前协议=伤感情?律师教你3步制定有效协议,不伤和气
为啥我的耳鸣别人也能听到?
回收站清空了如何找回删除文件?总结了4种直接用的方法
汽车漆面保养勿忽视!如何正确维护漆面
专家建议:加快构建快递物流包装EPR体系,推动绿色包装发展
紫砂壶泡茶艺术:资深茶人必修的10大核心技巧