《R数据可视化手册》——2.3 绘制条形图

简介:

本节书摘来异步社区《R数据可视化手册》一书中的第2章,第2.3节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 绘制条形图

问题
如何绘制条形图?

方法
对变量的值绘制条形图(见图2-5左图),可以使用barplot()函数,并向其传递两个向量作为参数,第一个向量用来设定条形的高度,第二个向量用来设定每个条形对应的标签(可选)。

如果向量中的元素已被命名,则系统会自动使用元素的名字作为条形标签:

barplot(BOD$demand, names.arg=BOD$Time)```
有时候,“条形图”表示的是分组数据中各个元素的频数(见图2-5右图)。这种条形图跟直方图有些类似,不过,其用离散取值的x轴替代了直方图中连续取值的x轴。要计算向量中各个类别的频数,可以使用table()函数。

table(mtcars$cyl)

4 6 8
11 7 14

值为4的频数为11,6的为7,8的为14

<div style="text-align: center"><img src="https://yqfile.alicdn.com/d5fe2422c1094d88db814101c25eb066402eb83a.png" width="" height="">
</div>


只需将上面的表格结果传递给barplot()函数即可绘制频数条形图:

生成频数表

barplot(table(mtcars$cyl))

对于ggplot2系统,可以使用qplot()函数得到类似的绘图结果(见图2-6)。绘制变量值的条形图时需将参数设定为geom="bar"和stat="identity"。注意变量x分别为连续取值和离散取值时输出结果的差异。

library(ggplot2)
qplot(BOD$Time, BOD$demand, geom="bar", stat="identity")

将x转化为因子型变量,令系统将其视作离散值

qplot(factor(BOD$Time), BOD$demand, geom="bar", stat="identity")

<div style="text-align: center"><img src="https://yqfile.alicdn.com/c800f817caf89ccbf7b62545332f944b08f785e4.png" width="" height="">
</div>


qplot()函数也可以用来绘制分组变量的频数条形图(见图2-7),事实上,这是ggplot2绘制条形图的默认方式,它比绘制变量值条形图的命令更简短。再提醒一次,注意连续x轴和离散x轴的差异。

cyl是连续变量

qplot(mtcars$cyl)

将cyl转化为因子型变量

qplot(factor(mtcars$cyl))

<div style="text-align: center"><img src="https://yqfile.alicdn.com/0e6f9cead58532fdb65a628e8a44469f44af0d22.png" width="" height="">
</div>


如果参数向量包含在同一个数据框内,则可以运行下面的语句:

变量值条形图,这里用BOD数据框中的Time列

和demand列分别作为x和y参数

qplot(Time, demand, data=BOD, geom="bar", stat="identity")

这与下面的语句等价

ggplot(BOD, aes(x=Time, y=demand)) + geom_bar(stat="identity")

频数条形图

qplot(factor(cyl), data=mtcars)

这与下面的语句等价

ggplot(mtcars, aes(x=factor(cyl))) + geom_bar()

另见
相关文章
|
9天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
|
3天前
|
JSON API 数据格式
OpenCode入门使用教程
本教程介绍如何通过安装OpenCode并配置Canopy Wave API来使用开源模型。首先全局安装OpenCode,然后设置API密钥并创建配置文件,最后在控制台中连接模型并开始交互。
1524 5
|
11天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
1668 17
|
9天前
|
人工智能 JavaScript 前端开发
【2026最新最全】一篇文章带你学会Cursor编程工具
本文介绍了Cursor的下载安装、账号注册、汉化设置、核心模式(Agent、Plan、Debug、Ask)及高阶功能,如@引用、@Doc文档库、@Browser自动化和Rules规则配置,助力开发者高效使用AI编程工具。
1271 6
|
10天前
|
消息中间件 人工智能 Kubernetes
阿里云云原生应用平台岗位急招,加入我们,打造 AI 最强基础设施
云原生应用平台作为中国最大云计算公司的基石,现全面转向 AI,打造 AI 时代最强基础设施。寻找热爱技术、具备工程极致追求的架构师、极客与算法专家,共同重构计算、定义未来。杭州、北京、深圳、上海热招中,让我们一起在云端,重构 AI 的未来。
|
13天前
|
IDE 开发工具 C语言
【2026最新】VS2026下载安装使用保姆级教程(附安装包+图文步骤)
Visual Studio 2026是微软推出的最新Windows专属IDE,启动更快、内存占用更低,支持C++、Python等开发。推荐免费的Community版,安装简便,适合初学者与个人开发者使用。
1292 12
|
7天前
|
云安全 安全
免费+限量+领云小宝周边!「阿里云2026云上安全健康体检」火热进行中!
诚邀您进行年度自检,发现潜在风险,守护云上业务连续稳健运行
1180 2
|
13天前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
1015 94
|
9天前
|
人工智能 JSON 自然语言处理
【2026最新最全】一篇文章带你学会Qoder编辑器
Qoder是一款面向程序员的AI编程助手,集智能补全、对话式编程、项目级理解、任务模式与规则驱动于一体,支持模型分级选择与CLI命令行操作,可自动生成文档、优化提示词,提升开发效率。
787 8
【2026最新最全】一篇文章带你学会Qoder编辑器

热门文章

最新文章