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)
热门推荐
用手机摄影记录生活美好瞬间的实用技巧分享
从"挂着长"到"躺着长" 贝贝南瓜种植成本省一半
提前批与普通批区别在哪有冲突吗?录取顺序谁先谁后?
卫生间用防水涂料和丙纶布哪种好?终于有师傅说出实话,切记提醒
“对自己差点吧!”——从我做起,摆脱消费主义的陷阱
汉文帝“宠杀”唯一在世的弟弟刘长,他为什么要这么做?
刘长与吕后:复杂的权力关系解析
中国耗费20年研发的盾构机,售价只有国外的10%,为何低价贱卖?
联想拯救者显卡模式切换指南
用什么泡水果去除农药
南北朝十大名将
揭秘二手车维保记录查询,内行人都在用的小技巧
揭秘"无创血糖手表":精准度堪忧,实测误差高达一倍
电源滤波器是如何降低电源噪声的?
两种形而上学:柏拉图 VS 亚里士多德
西瓜虫是什么虫?揭秘西瓜虫:它究竟是什么虫?!
MIT团队证明高温超导体可用于核聚变,将核聚变装置成本压缩数十倍
记录生活,留住美好的句子【50句精彩文案说说】
Excel月报表制作技巧:如何处理不同月份的天数差异
备孕期间应避免的高糖食物
挂职的意义与价值:个人成长与职场发展的双重机遇
企业注册时如何确定注册地址的合法性?北京对企业注册地址合法性的审查
橘子皮泡脚有什么好处
无偿献血优先用血指南:青岛市中心血站政策详解
了解偷税与避税的区别有哪些重要点
如何选择清洁能源作为投资方向
痛风患者可以吃肉吗?医生的专业解答来了
现在口腔医院种植牙价格表
电子合同该如何保证合规性以及安全性
劳动保障监察部门的举报渠道有哪些?