美文网首页
ggplot2编写函数来绘图

ggplot2编写函数来绘图

作者: R语言数据分析指南 | 来源:发表于2021-08-14 18:11 被阅读0次

本节来介绍如何编写函数来进行数据可视化,平时画图时我们经常会发现需要编写许多重复的代码来进行绘图,这样不仅使代码冗余也大大降低了代码的可阅读性,因此掌握如何编写函数来简化代码就显得尤为重要,下面通过企鹅数据集来进行一个简单小案例的演示

加载R包

library(tidyverse)
library(glue)
library(palmerpenguins)

使用企鹅数据集其中一个企鹅物种来绘制图

penguins %>%
  filter(species == "Gentoo") %>%
  ggplot() +
  aes(bill_length_mm, body_mass_g, color=sex) +
  geom_point() +
  ggtitle("Species: Gentoo") +
  xlab("bill length (mm)") +
  ylab("body mass (g)") +
  theme(plot.title.position = "plot")

如果想为不同的企鹅物种绘制了一个图。除了filter & ggtitle 函数处理的内容外,其他代码几乎相同

penguins %>%
  filter(species == "Chinstrap") %>%
  ggplot() +
  aes(bill_length_mm, body_mass_g, color=sex) +
  geom_point() +
  ggtitle("Species: Chinstrap") +
  xlab("bill length (mm)") +
  ylab("body mass (g)") +
  theme(plot.title.position = "plot")

我们用感兴趣的物种定义新变量"species_choice"

species_choice <- "Adelie"
penguins %>%
  filter(species == species_choice)
species <- "Adelie"

使用.data访问数据中的物种变量,使用.env访问当前环境中的物种变量

penguins %>%
  filter(.data$species == .env$species)

.data$species为我们获取数据框中的列,而.env$species是我们刚刚创建的本地环境中的变量

现在让我们来编写一个小函数,将物种名称作为输入并绘制图。使用glue来获取我们需要的变量名称

make_plot <- function(species) {
  penguins %>%
    filter(.data$species == .env$species) %>%
    ggplot() +
    aes(bill_length_mm, body_mass_g, color=sex) +
    geom_point() +
    ggtitle(glue("Species: {species}")) +
    xlab("bill length (mm)") +
    ylab("body mass (g)") +
    theme(plot.title.position = "plot")
}

我们可以调用该函数来绘制单个物种的图

make_plot("Adelie")

现在我们可以轻松地为所有物种制作图,而不是重复的粘贴代码。使用map函数获取species中的每个元素并将其用作 make_plot() 的输入,结果图作为列表存储在变量中

species <- c("Adelie", "Chinstrap", "Gentoo")
plots <- map(species, make_plot)

现在我们可以从列表中获取图表,使用以下代码获取图表

plots[[1]]
plots[[2]]

相关文章

  • ggplot2编写函数来绘图

    本节来介绍如何编写函数来进行数据可视化,平时画图时我们经常会发现需要编写许多重复的代码来进行绘图,这样不仅使代码冗...

  • 11-23-1、2绘图

    一、绘图基本概念 相关R包:作图(ggplot2),拼图(patchwork),导出(eoffice) 基础包绘图...

  • R -> ggplot2包(1)

    ggplot2包说明文档学习笔记(1) ggplot2的绘图数据来源是一个dataframe ggplot2通过一...

  • R绘图函数

    R语言四大作图系统: 基础绘图系统 lattice包 ggplot2包 grid包 R绘图分类: 高级绘图(搭好框...

  • R语言可视化及作图1--基础绘图(par函数,散点图,盒形图,条

    R语言绘图系统基础绘图包 ⚠️Lattice (语法复杂)ggplot2家族 ⚠️其他,比如:sjplot; pl...

  • 生信学习小组80期 Day4-CM

    今天分享的笔记如何使用r语言中ggplot2包进行绘图。 安装ggplot2包 使用install.package...

  • 2020-05-26

    ggplot2绘图: 点状图 data(mtcars)df <- mtcars[, c("mpg","cyl","...

  • R笔记之ggplot2画图

    ggplot2绘图理念 图形系统的核心理念是把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图。g...

  • 玩转ggplot2

    (注:本文基于RStudio环境) ggplot2是什么 ggplot2 是R语言中的一个包,用于绘图功能,相比于...

  • R语言之ggplot

    一:ggplot基本语法 ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离。按图层作...

网友评论

      本文标题:ggplot2编写函数来绘图

      本文链接:https://www.haomeiwen.com/subject/gxvdyltx.html