- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何用R语言绘制饼图和条形图由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
R 语言提供来大量的库来实现绘图功能.
饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系.
R 语言使用 pie() 函数来实现饼图,语法格式如下:
pie(x, labels = names(x), edges = 200, radius = 0.8,clockwise = FALSE, init.angle = if(clockwise) 90 else 0,density = NULL, angle = 45, col = NULL, border = NULL,lty = NULL, main = NULL, …)
绘制饼状图要做这些准备:反映数量的向量、各部分的标签、各部分的颜色(可选).
。
# 数据准备info = c(1, 2, 4, 8)# 命名names = c("Google", "Runoob", "Taobao", "Weibo")# 涂色(可选)cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC")# 绘图pie(info, labels=names, col=cols)
执行绘图程序,会在当前目录下生存一个 PDF 文件(Rplots.pdf),打开文件可以看到图形效果如下:
我们也可以使用 png()、jpeg()、bmp() 函数设置输出的文件格式为图片:
# 数据准备info = c(1, 2, 4, 8)# 命名names = c("Google", "Runoob", "Taobao", "Weibo")# 涂色(可选)cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC")# 设置输出图片png(file='runoob-pie.png', height=300, width=300)# 绘图pie(info, labels=names, col=cols)
接下来我们给饼图设置标题,中文字体需要设置字体参数 family='GB1',也可以自己设置字体库,详细参考:R 绘图 - 中文支持.
# 数据准备info = c(1, 2, 4, 8)# 命名names = c("Google", "Runoob", "Taobao", "Weibo")# 涂色(可选)cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC")# 计算百分比piepercent = paste(round(100*info/sum(info)), "%")# 绘图pie(info, labels=piepercent, main = "网站分析", col=cols, family='GB1')# 添加颜色样本标注legend("topright", names, cex=0.8, fill=cols)
如果要绘制 3D 的饼图,可以使用 plotrix 库的 pie3D() 函数,使用前我们需要先安装:
install.packages("plotrix", repos = https://mirrors.ustc.edu.cn/CRAN/)
# 载入 plotrixlibrary(plotrix)# 数据准备info = c(1, 2, 4, 8)# 命名names = c("Google", "Runoob", "Taobao", "Weibo")# 涂色(可选)cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC")# 设置文件名,输出为 pngpng(file = "3d_pie_chart.png")# 绘制 3D 图,family 要设置你系统支持的中文字体库pie3D(info,labels = names,explode = 0.1, main = "3D 图",family = "STHeitiTC-Light")
生成图片如下所示:
。
条形图,也称为柱状图条形图,是一种以长方形的长度为变量的统计图表.
条形图可以是水平或垂直的,每个长方形可以有不同的颜色.
R 语言使用 barplot() 函数来创建条形图,格式如下:
barplot(H,xlab,ylab,main, names.arg,col,beside)
参数说明:
接下来我们创建一个简单的条形图:
# 准备一个向量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 月 | 83017 | 1794546 | 190535 |
7 月 | 83534 | 2640626 | 585493 |
转换成矩阵,生成条形图,按并排格式显示,而且要显示颜色样本.
这里我们设置了自己的字体库,详细内容可以参考R 绘图 - 中文支持 。
library(showtext);font_add("SyHei", "SourceHanSansSC-Bold.otf");cvd19 = matrix(c(83017, 83534, 1794546, 2640626, 190535, 585493),2, 3)# 设置文件名,输出为 pngpng(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)# 设置文件名,输出为 pngpng(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 设置矩形条堆叠的方式,默认为 FALSE:
library(showtext);font_add("SyHei", "SourceHanSansSC-Bold.otf");cvd19 = matrix(c(83017, 83534, 1794546, 2640626, 190535, 585493),2, 3)# 设置文件名,输出为 pngpng(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语言绘制饼图和条形图的详细内容,更多关于R语言绘制饼图和条形图的资料请关注我其它相关文章! 。
原文链接:https://www.runoob.com/r/r-pie-charts.html 。
最后此篇关于如何用R语言绘制饼图和条形图的文章就讲到这里了,如果你想了解更多关于如何用R语言绘制饼图和条形图的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
至少在某些 ML 系列语言中,您可以定义可以执行模式匹配的记录,例如http://learnyouahaskell.com/making-our-own-types-and-typeclasses -
这可能是其他人已经看到的一个问题,但我正在尝试寻找一种专为(或支持)并发编程而设计的语言,该语言可以在 .net 平台上运行。 我一直在 erlang 中进行辅助开发,以了解该语言,并且喜欢建立一个稳
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我正在寻找一种进程间通信工具,可以在相同或不同系统上运行的语言和/或环境之间使用。例如,它应该允许在 Java、C# 和/或 C++ 组件之间发送信号,并且还应该支持某种排队机制。唯一明显与环境和语言
我有一些以不同语言返回的文本。现在,客户端返回的文本格式为(en-us,又名美国英语): Stuff here to keep. -- Delete Here -- all of this below
问题:我希望在 R 中找到类似 findInterval 的函数,它为输入提供一个标量和一个表示区间起点的向量,并返回标量落入的区间的索引。例如在 R 中: findInterval(x = 2.6,
我是安卓新手。我正在尝试进行简单的登录 Activity ,但当我单击“登录”按钮时出现运行时错误。我认为我没有正确获取数据。我已经检查过,SQLite 中有一个与该 PK 相对应的数据。 日志猫。
大家好,感谢您帮助我。 我用 C# 制作了这个计算器,但遇到了一个问题。 当我添加像 5+5+5 这样的东西时,它给了我正确的结果,但是当我想减去两个以上的数字并且还想除或乘以两个以上的数字时,我没有
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
这就是我所拥有的 #include #include void print(int a[], int size); void sort (int a[], int size); v
你好,我正在寻找我哪里做错了? #include #include int main(int argc, char *argv[]) { int account_on_the_ban
嘿,当我开始向数组输入数据时,我的代码崩溃了。该程序应该将数字读入数组,然后将新数字插入数组中,最后按升序排列所有内容。我不确定它出了什么问题。有人有建议吗? 这是我的代码 #include #in
我已经盯着这个问题好几个星期了,但我一无所获!它不起作用,我知道那么多,但我不知道为什么或出了什么问题。我确实知道开发人员针对我突出显示的行吐出了“错误:预期表达式”,但这实际上只是冰山一角。如果有人
我正在编写一个点对点聊天程序。在此程序中,客户端和服务器功能写入一个唯一的文件中。首先我想问一下我程序中的机制是否正确? I fork() two processes, one for client
基本上我需要找到一种方法来发现段落是否以句点 (.) 结束。 此时我已经可以计算给定文本的段落数,但我没有想出任何东西来检查它是否在句点内结束。 任何帮助都会帮助我,谢谢 char ch; FI
我的函数 save_words 接收 Armazena 和大小。 Armazena 是一个包含段落的动态数组,size 是数组的大小。在这个函数中,我想将单词放入其他称为单词的动态数组中。当我运行它时
我有一个结构 struct Human { char *name; struct location *location; int
我正在尝试缩进以下代码的字符串输出,但由于某种原因,我的变量不断从文件中提取,并且具有不同长度的噪声或空间(我不确定)。 这是我的代码: #include #include int main (v
我想让用户选择一个选项。所以我声明了一个名为 Choice 的变量,我希望它输入一个只能是 'M' 的 char 、'C'、'O' 或 'P'。 这是我的代码: char Choice; printf
我正在寻找一种解决方案,将定义和变量的值连接到数组中。我已经尝试过像这样使用 memcpy 但它不起作用: #define ADDRESS {0x00, 0x00, 0x00, 0x00, 0x0
我是一名优秀的程序员,十分优秀!