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)
热门推荐
世界杯运动员的饮食秘诀:如何通过饮食预防抽筋
中医食疗巧应对抽筋:三味食材助你轻松缓解
中医饮食调理,告别腿抽筋烦恼
培训师如何通过“走出去”打破职业瓶颈?
如何轻松读取电表数据,合理管理家庭用电消费和节约电费
如何精确调整电表,让电费支出更透明?
不喝水或很少喝水?高尿酸血症和痛风在靠近……科学饮水看这里→
婚姻19年无子,李健揭开不育真相,背后故事震撼人心
中国60万个丁克家庭,比“老无所依”更需要担心的真相
第一批丁克夫妻现状曝光,他们都后悔了吗?
人活着,做个简单的人!
国家集采阿司匹林肠溶片:低价也能保质量
冬季养生:阿司匹林服用者的饮食禁忌
阿司匹林防脑血栓,医生教你正确服药
美国心脏协会推荐:阿司匹林在心脑血管疾病中的应用
家居风水:如何在家中摆放玉石以提升运势
钢绞线在桥梁建设中的创新应用
收藏 | 家有学生的看过来,家庭健康生活方式“四要”快收好
大多数人没有注意的装修问题:新居中的网络布线该如何有效进行?
宜春“放大招” 300余项新春文旅活动喜迎八方游客
冬季咽喉疾病高发,如何正确使用鼹鼠医疗可视喉镜?
哪些城市对博士人才引进有特殊政策?
科技创新世界潮 | 新创意破解数据中心能耗难题
辽宁省矿产行业分析报告
李商隐最意难平的一首诗,短短八句全是旷世名句,最后两句传为爱情千古绝唱
AI技术如何守护我们的数字隐私?
差分隐私:AI隐私保护的新宠儿?
45#钢材质详解:成分、性能与应用领域
304 还是 202 哪种钢材最好?做出明智的决定
冬虫夏草会冻坏吗?冬虫夏草的保存方法