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
:线型group
color
控制选项:
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)
热门推荐
周末打卡武汉三大历史名胜,你准备好了吗?
武汉周边绝美自然景观,周末打卡走起!
智商税?“藻类”宠物食品来了!
常见的藻类植物及其分类特征(探究藻类植物的种类)
徐浦肿瘤专家张晖:胃癌发生前,往往容易忽视5个「伤胃」习惯
三年级作文写作技巧大揭秘!
三年级作文技巧全攻略:从审题到成文
冰能否导电?探究冰的导电性质
冰能否导电?探究冰的导电性质
郑钦文的淡黄长裙:当体育遇上时尚
烟花爆竹安全指南:让节日更放心!
【应急科普】春节期间,燃放烟花爆竹需注意
“二踢脚炸面粉”走红网络引发模仿,消防提醒:最高十年有期徒刑
从《异国大营救》到《奇妙大营救》:皓月公主的角色改编之路
盐酸托莫西汀正确服用指南,家长必看!
盐酸托莫西汀副作用知多少?ADHD治疗还有这些选择
盐酸托莫西汀:ADHD治疗的现状与展望
功能性消化不良中药方剂治疗原则
中国古代十大著名战役:长平之战、赤壁之战、巨鹿之战、牧野之战、垓下之战、鄢陵之战
古代军神:六位战神的辉煌与传奇
孙武:战争艺术的大师,策略超前的军事天才
沉香:8个方法学会怎样保养沉香
沉香手串怎么维护保养才能让香味持久?
速看!这些方式获得最新最全春运路况信息
转发收藏!春运今日启幕 出行提示请收好
文明城市的环境保护政策解读
《铠甲勇士6》回光颠:一个引发热议的反派角色
《清明上河图密码》:悬疑推理中的家族恩怨与权力斗争
不想起床,不想出门……冬季感到抑郁的话,你可以做这6件小事
公交"六进":创新服务模式 提升服务品质