原网址
https://r4ds.hadley.nz/data-visualize#visualizing-relationships
ggplot2 是一个用于描述和构建图形的连贯系统。使用 ggplot2 可视化单个变量的分布&两个或多个变量之间的关系。
环境:
install.packages("ggthemes")
install.packages("palmerpenguins::penguins")
library(tidyverse)
library(palmerpenguins)
library(ggthemes)
列:变量(variable)——可以度量的数量、质量或属性
行:观测值(data point observation )——在相似条件下进行的一组测量值,包含不同的变量的多个值
表格数据:一组与相应变量和观测值相关联的值
变量:所有企鹅的属性
观察值:单个企鹅的所有属性
tibbles:tidyverse的特殊数据框
查看数据框:glimpse(penguins)
(Console输出)View(penguins)
(R自带交互框)
palmerpenguins::penguin
glimpse(penguins)
View(penguins)
ggplot()
第一个参数:在图形中使用的数据集
第二个参数:mapping:如何将数据集中的变量映射到绘图的视觉属性,在aes()
中定义
geom_形状()
定义一个几何图形,表示数据的几何对象形状:bar-条形图;line-折线图;boxplot-箱线图;point-点
对于有缺失值的数据,散点图内没有显示,但有报错“warning"Removed 2 rows containing missing values (geom_point()).
na.rm 参数在 geom_point()
中有什么作用?默认值为FALSE,即表示warning;更改为TRUE,即静默warning
geom_point(aes(color = species, shape = species))
geom_smooth(method = "lm")
注意添加位置
是给每个企鹅种群单独拟合曲线?
还是给整个企鹅群体拟合曲线?
labs()
函数
参数:title="",subtitle="",x="",color="",shape=""
scale_color_colorblind()
函数
综上,第一部分绘图ggplot(
data = penguins,
mapping = aes(x = flipper_length_mm, y = body_mass_g)
) +
geom_point(aes(color = species, shape = species)) +
geom_smooth(method = "lm") +
labs(
title = "Body mass and flipper length",
subtitle = "Dimensions for Adelie, Chinstrap, and Gentoo Penguins",
x = "Flipper length (mm)", y = "Body mass (g)",
color = "Species", shape = "Species"
) +
scale_color_colorblind()
ggplot(
data = penguins,
mapping = aes(x = flipper_length_mm, y = body_mass_g)
)+
geom_point(mapping = aes(color=bill_depth_mm))+
geom_smooth(method="gam")+
labs(title = "title",subtitle = "subtile",caption ="caption",tag = "tag",alt = "alt",
alt_insight = "alt_insight")
ggplot(penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
geom_point()
penguins |>
ggplot(penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
geom_point()
记住:ggplot 的前两个参数是 data 和 mapping,在简洁代码表达式中会省略,
#绘制条形图检测某一分类变量分布
ggplot(penguins, aes(x = species)) +
geom_bar()
#根据条形的频率依据处理因子函数对条形重新排序
ggplot(penguins, aes(x = fct_infreq(species))) +
geom_bar()
处理因子函数
fct_inorder()
:按它们首次出现的顺序排列。
fct_infreq()
:按每个级别的观测值数(最大在前)
fct_inseq()
:按级别的数值。
ggplot(penguins, aes(x = body_mass_g)) +
geom_histogram(binwidth = 200)
binwidth 参数:设置直方图中间隔的宽度,需要摸索找到最适宜的
geom_bar(color = "red")
——边框变红
geom_bar(fill = "red")
——填色变红
可视化两个或多个变量之间关系
密度图
ggplot(penguins, aes(x = body_mass_g, color = species)) +
geom_density(linewidth = 0.75)
在ggplot()
里改
填色fill = species
描边color = species
在geom_density()
里改:
增加透明度geom_density(alpha = 0.5)
改变线宽linewidth = 0.75
两个分类变量
堆积条形图
可视化了 species 在每个岛屿内的分布
ggplot(penguins, aes(x = island, fill = species)) +
geom_bar()
第二个图是通过在几何中设置 position = "fill" 创建的相对频率图,对于比较岛屿之间的物种分布更有用,因为它不受岛屿上企鹅数量不相等的影响。
ggplot(penguins, aes(x = island, fill = species)) +
geom_bar(position = "fill")
两个数值变量
geom_point()
geom_smooth()
三个或更多变量
facet_wrap()
参数1:公式?
后跟~变量名(备注:此变量为分类变量)ggplot(penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
geom_point(aes(color = species, shape = species)) +
facet_wrap(~island)
保存到项目文件夹中ggsave(filename = "penguin-plot.png")
Quarto容错率高(?)
同时运行两个ggplot()
,再运行ggsave(filename = "penguin-plot.png")
后保存的是离ggsave(filename = "penguin-plot.png")
最近的ggplot()
图
生信星球打卡任务,菜鸟一枚,有错误的地方欢迎各位在评论区指导,谢谢!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。