《R绘图系统(第2版)》一2.2 plot()函数

简介:

本节书摘来自异步社区《R绘图系统(第2版)》一书中的第2章,第2.2节,作者【新西兰】Paul Murrell,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 plot()函数

在传统绘图系统中最重要的高级函数是plot()函数。在许多情况下,该函数提供了在R中绘制完整图形最简单的方法。

plot() 函数中的第一个参数是需要绘图的数据,指定数据的方式可以很灵活。例如,下面代码中每一个plot()函数的调用都被用来绘制如图1.1的同一幅散点图(只是在坐标轴标签的设置上有轻微变动)。在第一种情况下,所有的绘图数据都被包含在一个简单的数据框内。在第二种情况下,两个不同的变量分别被设置为x参数与y参数。在第三种情况下,绘图数据被设置成一个关系式的形式 y~x,同时将包含关系式中所含变量的数据框作为参数传入函数。

> plot(pressure)
> plot(pressure$temperature,pressure$pressure)
> plot(pressure~temperature,data=pressure)

传统绘图系统并不能区分不同绘图样式,例如只在每一个(x,y)坐标位置绘制数据符号的散点图和绘制一个连接每一个(x,y)坐标位置的直线段的散点图(线图),之间的主要差异。这些样式都是由基本绘图函数plot()中一个名为 type 的参数控制的变量。下面的代码通过设定 type 参数不同取值来绘制4幅不同的图像,来演示type 参数如何控制绘图样式(见图2.1)。


ad993f430573f9b09b07047d03f705c7ee0662b2

图2.1 散点图的4种变化。在每一个例子中,绘图都是通过调用plot()函数并使用相同的数据作为参数实现的;仅有的变化是对type参数取了不同的值。在左上方的示例图中,type="p"以绘制散点(数据符号),在右上方的示例图中,type="l"以绘制折线,在左下方的示例图中,type="b"以同时绘制散点和折线,在右下方的示例图中,type="h"以绘制类似直方图的垂直线段。

> y<-rnorm(20)
> plot(y,type="p")
> plot(y,type="l")
> plot(y,type="b")
> plot(y,type="h")

同样的,传统绘图函数也不能够区分一个简单数据集所绘制的图形与一个包含多项序列的复杂数据集所绘制的图形。更多数据项可以通过使用低级函数来添加到已绘制的图形中,例如使用points()函数和lines()函数(见3.4.1小节;同时也见于2.5节中关于函数matplot()的介绍)。

事实上,plot()函数是一个泛型函数。对这句话的解释前面已经做了描述;plot()函数能够接受类型相同但格式被不同的数据作为参数(当然这仍将输出相同的结果)。但是,plot()函数作为泛型函数的事实也意味着,如果给plot()函数传入不同类型的数据,则会绘制出不同类型的图形。例如,如果传给x变量的参数是一个因子,plot()函数会默认绘制一幅箱线图,而不是散点图。另一个例子则如下面的代码所示。该例中,通过调用lm() 函数创建了一个"lm"对象。当把该对象传递给plot()函数时,plot()函数会针对"lm"对象调用特定的绘图方式绘制回归诊断图(见图2.2)。[1]


fdfaac888c1b6b2f2b51f23d828f7a8679d6db89

图2.2 绘制"lm"对象。在plot()函数中,有一类专门用来绘制"lm"对象的方法,能够根据线性模型分析所得到的结果绘制出一系列回归诊断图。

> lmfit<- lm(sr~pop15+pop75+dpi+ddpi,
        data=LifeCycleSavings)
> plot(lmfit)

如果想了解更多关于plot()函数中"lm"绘图方法的内容,输入help(plot.lm)。

在大多数情况下,绘图扩展包中提供的新型绘图功能都是通过在plot()函数中定义一个新的绘图方法实现的。例如,cluster包提供给plot()函数一个方法用于创建表示自底向上聚类过程结果的图像(对应于一个agnes对象)。该方法能够绘制一个特殊的条幅图和一个反映数据结构的树形图(见下面的代码以及图2.3)。第一部分的代码用来生成数据以及创建一个agnes对象;后一部分的代码用来绘制agnes对象的图形。


5a7de98c9d37aff3ddd5fa242edc7866dc3458b0

图2.3 绘制"agnes"对象。在plot()函数中,有一类专门用来绘制"agnes"对象的方法,能够绘制合成聚类分析所产生结果的图形。

> subset<-sample(1:150,20)
> cS<-as.character(Sp<-iris$Species[subset])
> cS[Sp=="setosa"]<-"S"
> cS[Sp=="versicolor"]<-"V"
> cS[Sp=="virginica"]<-"g"
> ai <- agnes(iris[subset,1:4])

> plot(ai,labels=cS)

简单调用函数plot(x),其中x是一个包含了需要可视化数据的R对象,通常就能以最简单的方式获取对数据的一个初步认知。

接下来的几节简要介绍了使用plot()函数或者graphics包中其他高级函数所能够绘制的主要图形类型。本章接近结尾的部分将讨论这些函数中能够控制图形详细内容的重要参数(见2.6节)。

本书第4部分将会介绍许多R绘图扩展包中绘制其他类型图形的高级函数。[2]

相关文章
|
运维 监控 负载均衡
ACS
阿里云容器计算服务ACS(Alibaba Cloud Container Compute Service,ACS)是一种基于容器技术的云计算服务,它可以帮助用户快速构建、部署和管理容器化应用程序。ACS提供了容器镜像、容器编排、负载均衡、日志监控等功能,使得用户可以专注于应用程序的开发和迭代,而无需关注底层的基础设施和运维。
840 3
|
18天前
|
人工智能 运维 自然语言处理
FDE可能是AI时代最短命的热门职业:一场注定存在利益冲突的企业交付实验
FDE(前线部署工程师)或是AI时代最短命的热门职业:表面是企业AI落地的关键角色,实则暴露厂商利益与客户自主权的根本冲突。当技术快速迭代、多模型共存成常态,依附单一供应商的驻场模式难逃“过渡性商业策略”宿命——它解决的是产品不成熟时的交付缺口,而非企业长期AI能力的根基。(239字)
172 0
|
8月前
|
机器学习/深度学习 算法 搜索推荐
RouteRAG:用特殊 Token 和强化学习构建可学习的 RAG 检索策略
RouteRAG将多轮RAG建模为序列决策过程,模型自主学习何时检索、搜什么、用哪种模式(段落/图/混合),并通过两阶段GRPO强化学习,兼顾答案准确率与检索效率,在多跳问答上显著提升性能。
409 12
RouteRAG:用特殊 Token 和强化学习构建可学习的 RAG 检索策略
|
28天前
|
人工智能 自然语言处理 安全
AI安全网关2026全景解读:概念、威胁模型、架构、合规与选型,一篇全覆盖
本文面向安全工程师、架构师与AI开发者,阐述AI安全网关的核心价值:将安全控制点从传统“连接层”(地址/端口/身份)上移至“语义层”,通过检测Prompt与模型输出内容,实现敏感信息识别、攻击拦截、脱敏放行及审计溯源。涵盖威胁模型、级联检测、部署架构、合规映射与上线三阶段实践。(239字)
228 0
|
4月前
|
人工智能 自然语言处理 数据安全/隐私保护
DeepSeek 复制到 Word 格式混乱的通用处理流程和选型建议
DeepSeek生成内容复制到Word常出现“#*”乱码,根源在于Markdown与办公软件格式不兼容。本文详解标题、表格、公式等元素的转换要点,提供手动处理、脚本及DS随心转等方案,并强调保留原文、复核高风险元素与合规交付的重要性。(239字)
724 0
|
5月前
|
存储 运维 关系型数据库
分布式数据库架构演进:从集中式到分布式,三大路线一次讲清楚
本文深入浅出解析分布式数据库选型逻辑:厘清集中式与分布式适用边界,剖析分片、事务、一致性三大技术难点,对比分库分表、原生分布式、共享存储集群三类架构。务实提醒——分布式非银弹,够用才是硬道理。
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
1268 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
6月前
|
存储 缓存 关系型数据库
【MySQL】《MySQL索引核心分类面试高频考点问答清单》(附:《一页纸速记版》)
本文系统梳理MySQL索引核心分类与面试高频考点,涵盖B+树原理、聚簇/非聚簇索引区别、联合索引最左前缀、覆盖索引、前缀索引、索引失效场景及ICP/MRR等进阶优化。
|
6月前
|
人工智能 弹性计算 运维
2026年阿里云新用户每日秒杀优惠活动入口、配置与价格、活动规则参考
阿里云2026年面向新用户推出的每日秒杀活动,包含两大核心入口:一是"开年焕新"活动页,提供2核2G轻量服务器38元/年(宝塔面板镜像)和2核4G配置9.9元/月或199元/年(OpenClaw镜像);二是分钟级部署OpenClaw活动页,同样2核4G配置,预装Hermes或OpenClaw镜像,适合AI智能体开发。秒杀每天10:00和15:00两场,限新用户抢购,中国大陆地域可用。未抢到者可选68元/年新用户专属价,或99元/年经济型e实例、199元/年u1实例等长效特惠方案作为替代,均享新购续费同价,活动截止2027年3月31日。
|
10月前
|
人工智能 算法 搜索推荐
马斯克2026采访详解:中国AI算力将远超世界,世界变化的奇点即将到来!
2026年1月,马斯克在德州工厂预言:AGI将于2025-2026年实现,Optimus机器人3年内超越外科医生,中国发电量将达美国3倍,AI算力将领先全球。他称“奇点已来”,电力决定AI未来,太阳能是关键。