欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

R语言作图之直方图histogram绘制过程详解

程序员文章站 2022-07-03 16:13:33
先给大家介绍下r语言入门:直方图histogram的绘制,具体内容如下所示:直方图和条形图最大的不同则是直方图可以用于显示出一个数据的频数,具有统计的作用,我们下面来看一一看直方图在r语言当中是如何绘...

先给大家介绍下r语言入门:直方图histogram的绘制,具体内容如下所示:

直方图和条形图最大的不同则是直方图可以用于显示出一个数据的频数,具有统计的作用,我们下面来看一一看直方图在r语言当中是如何绘制的吧!

首先创建一系列的数据:

h<-c(4,6,3,46,3,5,7,8,3,4,3,4,5)

创建完之后将这个数据纳入到直方图histogram的绘制函数hist()当中,如下所示:

hist(h,xlab = "number'scale",ylab="right",col="blue",border = "red")

其中的参数h表示我们纳入进来的数据,这些数据将会在x轴上进行标定,xlab表示的是x轴的标签,ylab表示的是y轴的标签,col表示的是直方图的颜色,border表示的是直方图边缘的颜色,绘制的结果如下所示:

R语言作图之直方图histogram绘制过程详解

 如果想要对绘制的数据加以限制,比如说x轴上只绘制从0到20的数据,y也只绘制0到10的数据的话,则可以直接使用xlim和ylim来进行指定,指定的参数应当为向量(这个是r语言当中的规定)。

重新编写的代码如下所示:

> hist(h,xlab = "number'scale",ylab="right",col="blue",border = "red",xlim=c(0,20),ylim=c(0,10))

出来的图像如下所示:

R语言作图之直方图histogram绘制过程详解

 这就是绘制直方图当中所有的内容了,它也是r语言当中绘图最简单的一个。

知识点扩展:r语言作图——histogram(直方图)

最近小仙同学很是烦恼,本以为自己已经掌握了ggplot2作图的语法,用read.csv(), ggplot()+geom_point()/boxplot()/violinplot()…就可以画遍天下图表,结果却发现到真正画图的时候,还是会出现不少的小问题

R语言作图之直方图histogram绘制过程详解

比如小仙最近要画一个直方图,最开始用hist()函数试了一下,看了下形状, 好像因为数据取值范围跨度太大(最大值104,724,最小值30),这个图画出来有点丑,于是决定用ggplot美化一下。

R语言作图之直方图histogram绘制过程详解

调整之后好看是好看了,但是大家有没有看出什么不对的地方,明明bins=10但是只画出8个格子,之后调整bins的值,每次都会比我指定的值少2个格子。而且,图中第一个格子(取值范围0-1250)应该有700多个数据,但是图上显示只有不到300个,问题出在哪里呢?小仙同学百思不得其解。在geom_histogram()函数中,bins就是用来指定分组数目(格子),为什么总是会少两个?

R语言作图之直方图histogram绘制过程详解

小仙同学考虑到自己能力有限,决定量力而行,另辟蹊径。

于是设置另外一个参数breaks,终于找回了丢失的格子

R语言作图之直方图histogram绘制过程详解

经过此事,小仙同学深刻认识到了自己的有限水平,哈哈。不过还是分享一下,希望能帮助到大家。实际的数据可真是比书上的例子难处理呢。

按照惯例写一下整个作图的过程

step1. 绘图数据的准备

首先要把你想要绘图的数据调整成r语言可以识别的格式,建议大家在excel中保存成csv格式。

R语言作图之直方图histogram绘制过程详解

step2. 绘图数据的读取

data<-read.csv(“your file path”, header = t)
#注释:header=t表示数据中的第一行是列名,如果没有列名就用header=f

step3.绘图所需package的安装、调用

library(ggplot2)
#注释:package使用之前需要调用

step4.绘图

p<-ggplot(data, aes(x=data$销量)) +
geom_histogram(breaks=seq(0,10000,1000))+ xlim(0,10000)
p

R语言作图之直方图histogram绘制过程详解

到此这篇关于r语言作图之直方图histogram详解的文章就介绍到这了,更多相关r语言直方图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!