草庐IT

R 绘图 - 条形图

runoob 2023-04-07 原文

R 绘图 - 条形图

条形图,也称为柱状图条形图,是一种以长方形的长度为变量的统计图表。

条形图可以是水平或垂直的,每个长方形可以有不同的颜色。

R 语言使用 barplot() 函数来创建条形图,格式如下:

barplot(H,xlab,ylab,main, names.arg,col,beside)

参数说明:

  • H 向量或矩阵,包含图表用的数字值,每个数值表示矩形条的高度。
  • xlab x 轴标签。
  • ylab y 轴标签。
  • main 图表标题。
  • names.arg 每个矩形条的名称。
  • col 每个矩形条的颜色。

接下来我们创建一个简单的条形图:

实例

# 准备一个向量
cvd19 = c(83534,2640626,585493)

# 显示条形图
barplot(cvd19)

执行绘图程序,会在当前目录下生存一个 PDF 文件(Rplots.pdf),打开文件可以看到图形效果如下:

为了更好地表达信息,我们可以在图表上添加标题、颜色及每个矩形条的名称。

以下我们创建 2020 年 7 月 1 日中国、美国和印度的新冠疫情确诊人数统计图。

中文字体需要设置字体参数 family='GB1'

实例

cvd19 = c(83534,2640626,585493)

barplot(cvd19,
    main="新冠疫情条形图",
    col=c("#ED1C24","#22B14C","#FFC90E"),
    names.arg=c("中国","美国","印度"),
    family='GB1'
)

barplot 中的数据既可以是向量,也可以是矩阵,现在我们生成一张新冠疫情 6 月和 7 月对比图。

首先准备数据:

 中国美国印度
6 月830171794546190535
7 月835342640626585493

转换成矩阵,生成条形图,按并排格式显示,而且要显示颜色样本。

这里我们设置了自己的字体库,详细内容可以参考 R 绘图 - 中文支持

实例

library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
  2, 3
)

# 设置文件名,输出为 png
png(file = "runoob-bar-1.png")

#加载字体
showtext_begin();

colnames(cvd19) = c("中国", "美国", "印度")
rownames(cvd19) = c("6月", "7月")
barplot(cvd19, main = "新冠疫情条形图", beside=TRUE, legend=TRUE,  family='SyHei')

# 去掉字体
showtext_end();

以下代码会在当前程序目录下生存一个 runoob-bar-1.png 文件,如下所示:

我们设置的颜色样本将是每各组的颜色样本:

实例

library(plotrix)
library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
  2, 3
)

# 设置文件名,输出为 png
png(file = "runoob-bar-2.png")
#加载字体
showtext_begin();
colnames(cvd19) = c("中国", "美国", "印度")
rownames(cvd19) = c("6月", "7月")

barplot(cvd19, main = "新冠疫情条形图", beside=TRUE, legend=TRUE,col=c("blue","green"),  family='SyHei')
# 去掉字体
showtext_end();

以下代码会在当前程序目录下生存一个 runoob-bar-2.png 文件,如下所示:

beside 参数

beside 设置矩形条堆叠的方式,默认为 FALSE:

  • beside=FALSE 时,条形图的高度是矩阵的数值,矩形条是水平堆叠的。
  • beside=TRUE 时,条形图的高度是矩阵的数值,矩形条是并列的。

实例

library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
  2, 3
)

# 设置文件名,输出为 png
png(file = "runoob-bar-3.png")
#加载字体
showtext_begin();
colnames(cvd19) = c("中国", "美国", "印度")
rownames(cvd19) = c("6月", "7月")

barplot(cvd19, main = "新冠疫情条形图", beside=FALSE, legend=TRUE,col=c("blue","green"),  family='SyHei')
# 去掉字体
showtext_end();

以下代码会在当前程序目录下生存一个 runoob-bar-3.png 文件,如下所示:

有关R 绘图 - 条形图的更多相关文章

  1. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  2. ruby - 在 StockChart (highchart) 中以编程方式显示柱形图的工具提示 - 2

    我有一个Highstock图表(带有标记和阴影的线条),并且想以编程方式显示一个highstock工具提示,例如,当我选择某个表上的一行(包含图表数据)我想显示相应的highstock工具提示。这可能吗? 最佳答案 股票图表thissolution不起作用:在thisexample你必须更换这个:chart.tooltip.refresh(chart.series[0].data[i]);为此:chart.tooltip.refresh([chart.series[0].points[i]]);解决方案可用here.

  3. ruby - Ruby 有哪些绘图包/API? - 2

    类似:Whatgraphingpackages/APIsexistforPerl?我正在对不同语言的在线图形包进行一些研究,想知道当前有哪些适用于Ruby的最新图形包值得研究。所需的最低功能应包括Google通过itsAPI提供的功能.如能简要介绍所推荐的包/API的主要优势,我们将不胜感激。 最佳答案 我已将以下内容添加为书签,以便在时间允许时进行调查:基于Flash我还没有尝试过这些,但如果你想要活泼的动画,它们看起来都很有前途:amChartsFusionChartsOpenFlashChartZiyagemGoogleCha

  4. 基于C++实现一个支持简单交互绘图小程序 - 2

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763967资源下载地址:https://download.csdn.net/download/sheziqiong/86763967基于C++实现一个支持简单交互绘图小程序一、概要设计1.1开发环境IDE:VisualStudio2019Commity运行环境:window10专业版配置要求:内存4g显卡无要求CPU无要求目的调试编译通过图形应用编码、熟悉flk1.2结构化模块设计图UML类图1.3主要模块功能接口描述Graph.cppvoidShape::add(Pointp)//

  5. ruby-on-rails - 如何从图像中读取条形码 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我正在寻找有关如何阅读EAN-13的图书馆、技术或建议来自图像的条形码(包括ISBN和ISSN编码)。该图像可能来自手机或网络摄像头,因此分辨率可能很差且未对齐。我对可以从ruby​​onrails中使用的东西特别感兴趣,但欢迎提供其他语言的答案。首

  6. 基于ChatGPT的智能问答、ai绘图微信小程序思路 - 2

    ChatGPT![在这里插入图片描述](https://img-blog.csdnimg.cn/186d9ecc453b48be9f19c467da7c3f07.jpegChatGPT是openai公司的一个人工智能机器人产品,目前已经升级到4.0版本。其因便捷高效,已经在大学生、IT届、科研界等领域广为流传。但是直接进入其官网使用有时候并不是那么方便,毕竟他不开放给中国用户使用,我们需要一些魔法才能用上。如果做成一个微信小程序随时随地打开就能用的话,会方便很多。正好openai官方也开放了api供开发者使用。我们可以进入openai官网https://platform.openai.com/

  7. javascript - 绘图工具 - Angular2 - 2

    我对Web应用程序比较陌生,因此才刚刚开始使用Angular2(还没有使用过angularJS)和Typescript。我正在尝试使用Zingchart绘制图表。我经历了5分钟的快速入门以及angular2页面中的教程,并对它的工作原理有了一个不错的了解。我按照Zingchart页面上的说明使用这两个工具(https://blog.zingchart.com/2016/03/16/angular-2-example-zingchart/)在网页上创建了一个图表。但是,我似乎遇到了问题。1)我无法从@angular/core导入AfterView。尽管页面上说我必须使用angular2/

  8. javascript - 将 y 轴标签添加到 NVD3 多条形图 - 2

    我正在尝试将轴标签添加到NVD3多条形图,但它似乎只适用于x轴。有什么办法解决这个问题吗?我在这里设置了一个例子:http://jsfiddle.net/msts1jha/2/varchart=nv.models.multiBarChart();chart.xAxis.tickFormat(d3.format(',f'));chart.yAxis.tickFormat(d3.format(',.1f'));chart.xAxis.axisLabel("xaxis");chart.yAxis.axisLabel("yaxis"); 最佳答案

  9. javascript - 如何在 Angular 图表条形图中使用纯色条 - 2

    我正在使用angular-chart(基于chart.js)创建一些条形图,但无法获得我想要的条形样式。我希望条形图是这样的纯色:但我不知道如何摆脱chart.js默认添加的alpha:我的html看起来像这样:和javascript:angular.module('myApp',['chart.js']).controller('myController',[function(){varctrl=this;ctrl.socialChart={options:{legend:{display:true}},labels:['2012'],series:['FACEBOOK','GOOG

  10. javascript - 如何更改 ColumnChart 中的条形颜色和图例 - 2

    我正在使用GoogleChart显示ColumnChart两件事:1)成功2)失败ForSuccess:Color=GreenForFailed:Color=Red但问题是ColumnChart总是以蓝色显示栏,而且我想要图例:SuccessFailed但它将Legends显示为“值”,如下所示:代码:angular.module("google-chart-sample",["googlechart"]).controller("GenericChartCtrl",function($scope){vardata={"data":{"graphResponse":{"cols":[{

随机推荐