R语言中强大的作图软件包ggplot2

news/2024/11/22 7:56:47/

R语言两大底层绘图系统

grid 图形系统可以很容易地控制图形基础单元,给予编程者创作图形极大的灵活性。grid 图形系 统还可以产生可编辑的图形组件,这些图形组件可以被复用和重组,并能通过 grid.layout()等函数, 把图形输出到指定的位置上。grid 包中没有提供生成统计图形及完整绘图的函数,因此很少直接使用 grid 包来分析与展示数据。

lattice包通过一维、二维或三维条件绘图,即所谓的栅栏(trellis)图来对多元变量关系进行直观展示。相较基础绘图函数,是直接在图形设备上绘图的,lattic包绘图函数返回 trellis对象。在命令执行时,栅栏图会被自动打印,所以看起来就像是 lattice()函数直接完成了绘图。

ggplot2 包则基于一种全面的图形语法,提供了一种全新的图形创建方式,这套图形语法把绘图过程归纳为数据(data)、转换(transformation)、度量(scale)、坐标系(coordinate)、元素(element)、指引(guide)、显示(display)等一系列独立的步骤,通过将这些步骤搭配组合,来实现个性化的统计绘图。

ggplot2 是一个功能强大且灵活的 R 包,由 Hadley Wickham 编写,它可以生成优雅而实用的图形。ggplot2 中的 gg 表示图形语法(grammar of graphic),这是一个通过使用“语法”来绘图的图形概念。ggplot2 主张模块间的协调与分工,整个 ggplot2 的语法框架如下图所示,主要包括数据绘图部分与美化细节部分。

三种绘图包对比

ggplot2这么优秀,可以说很大部分是因为同行的衬托。

---------------------------base包------------------------------

df<-read.csv("Facet_Data.csv", header = TRUE)plot(df$SOD, df$tau)#,pch=21,lty=0.25,col="grey10") hist(df$SOD,breaks =30,ylim=c(0,40),main  = "")boxplot(SOD~Class,data=df,xlab="Class",ylab="SOD")

-------------------------lattice包------------------------------

library(lattice)p1<-xyplot(SOD~tau,df,col="black")p2<-histogram(~SOD,df,type="count",nint=30,col="white")p3<-bwplot(SOD~Class,df,xlab="Class",            par.settings = canonical.theme(color = FALSE))library(gridExtra) grid.arrange(p1,p2,p3, ncol = 3, nrow = 1)

--------------------------ggplot2包---------------------------

library(ggplot2)p1<-ggplot(df, aes(x=SOD,y=tau)) +   geom_point() #shape=21,color="black",fill="red",size=3,stroke=0.1p2<-ggplot(df, aes(SOD)) +   geom_histogram(bins=30,colour="black",fill="white")p3<-ggplot(df, aes(x=Class,y=SOD)) +   geom_boxplot() library(gridExtra) grid.arrange(p1,p2,p3, ncol = 3, nrow = 1)

一对比就发现ggplot2做出的图多么的高大上了吧!

声明:部分图片及代码来源于《R语言数据可视化之美专业图表绘制指南》

本期内容到此结束

敬请期待下期内容

想要学习更多数据分析知识请扫描下方二维码,关注“数据分析成长记”微信公众号,更多精彩文章等你来读!

也可以进我们的交流群,作图所用相关数据在交流群分享!


http://www.ppmy.cn/news/965509.html

相关文章

[R语言]手把手教你如何绘图(万字)

目录 概况 常用高级图形 条形图 csv文件导入 csv文件导出 R语言sep函数 seq函数 with函数 直方图和密度估计图 盒型图 boxplot() 正态QQ图 散点图 pairs()散点矩阵图 曲线图 curve() 三维图 动态三维图 低级图形函数 abline() lines() legand()增加图例 …

CHAP7:使用 R 编程进行数据分析

1.了解 R 的基础知识 R 是一种编程语言&#xff0c;可用于在数据分析过程的每个阶段执行任务。在这部分课程中&#xff0c;您将了解 R 和 RStudio&#xff0c;这是 R 的集成开发人员环境 (IDE)。您将探索使用 RStudio 与 R 一起工作的好处。RStudio 使您能够轻松利用 R 的特性…

R语言常用代码(入门)

R语言常用代码 基本命令 q()&#xff1a;退出R程序 tab&#xff1a;自动补全 ctrlL&#xff1a;清空工作环境 ESC&#xff1a;中断当前计算 head(X)&#xff1a;查看数据集前6行数据 tail(X)&#xff1a;查看数据集尾6行数据安装所需要的包 # 安装包 install.packages("…

R语言---使用RTCGA包获取TCGA数据---笔记整理

原文链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzAxMDkxODM1Ng&mid2247486585&idx1&sn3035f6420904aad2c8161b362cdeb472&chksm9b484cc2ac3fc5d479fc5bce3d68d4666b763652a21a55b281aad8c0c4df9b56b4d3b353cc4c&scene21#wechat_redirect 1.RTCGA…

写一个用r语言分层抽样算积分的代码——chatgpt版

目录 一、写一个用r语言分层抽样算积分的代码二、写一个用r语言分层抽样f(x)exp(x)算积分的代码三、写一个用r语言分别用随机投点法、平均估计法重要抽样法和分层抽样计算f(x)exp(x)积分的代码四、写一个用r语言分别用随机投点法、平均估计法重要抽样法和分层抽样计算f(x)exp(x…

一脉相通!聊聊 ChatGPT 发展路线

作者 | 上衫翔二 整理 | NewBeeNLP 大家好&#xff0c;这里是 NewBeeNLP。 首页最近被chatGPT刷屏&#xff0c;但翔二博主左看右看发现很多想法似乎都是一脉相通的&#xff0c;于是连夜从存档中找了一些文章尝试理一理它的理论路线。 具身智能综述和应用&#xff08;Embodied …

AI是超越还是桎梏?从ChatGPT到5G+AI,我们在聊什么?

从家常里短聊到科技创新&#xff0c;从人文故事探讨到物理科学&#xff0c;诞生2个月用户即破亿的ChatGPT正成为火爆全球的AI应用工具&#xff0c;其强大的能力超乎人们想象。这款几乎博学多识的聊天机器人能运用AI系统进行简洁的交流&#xff0c;完成各种指令信息的表达。面对…

桥梁监测需要哪些设备?

随着我国经济的发展&#xff0c;我国桥梁建设也迈上了新的台阶。截至2022年底&#xff0c;我国的公路桥梁总数达到了103.32万座。然而&#xff0c;随着在役桥梁使用时间的增长&#xff0c;承载能力受到荷载、环境以及结构退化等因素的影响&#xff0c;桥梁安全问题日益凸显。桥…