1.1、负基础的R语言学习笔记.绘图篇:频率分布直方图

负基础的R语言学习笔记.绘图篇:频率分布直方图

主要是R语言在统计绘图中的几个应用,以备日后查阅。

1、准备

这个例子是根据 100 个取值范围在 1.3-28 之间的数据绘制频率分布直方图,数据保存在 Excel 表格的一列中,列标题为 number。
需要用到两个宏包:

install.packages(readxl)     #读取excel表格
install.packages(ggplot2)    #用于绘图
library(readxl)  
library(ggplot2)   #加载两个宏包

2、绘图过程

shuju = read_xlsx(“Q1.xlsx”)      

#读取excel表格Q1.xlsx,并以变量名 shuju 保存,默认情况下原单元格中的第一行将会作为变量列名。
如果不希望以第一行作为列名,则通过参数col_names来调整:
shuju = read_xlsx(“Q1.xlsx”,col_names=FALSE)

绘图

f = ggplot(data=shuju,aes(x=number)) +
          geom_histogram()	
print(f)    #输出图象

#用到了两个函数:ggplot和geom_histogram
ggplot 表示创建了一个ggplot对象,并赋值给 f。data=shuju表示绘制shuju的图形,aes(x=number)表示将“number”这一列变量作为x轴.
geom_histogram()是绘制直方图的函数,目前括号内没有设置任何参数.
所得结果如下:
得到了一个非常丑的直方图
绘图思路:通过ggplot函数创建图形对象后,后续再通过其他的函数逐步添加图层进行绘图。 上面代码中“+”的作用就是将一个新的图层添加到当前的图形上。
接下来对直方图做一些修饰。

3、修饰图形

这些修饰主要通过添加geom_histogram的参数实现。
(1)设置长方形边框,填充色,透明度。

geom_histogram(color="black",
				fill="blue",
				alpha=0.5)

color:边框颜色; fill:填充色; alpha:透明度

好看一点了
(2)设置自定义的组距和组数。

geom_histogram(color="black",
				fill="blue",
				alpha=0.5,
		breaks=seq(1.2,28.2,by=3),right=FALSE)

用到了参数“breaks”,设置横轴上的区间, s e q = ( 1.2 , 28.2 , b y = 3 ) seq=(1.2,28.2,by=3) seq=(1.2,28.2,by=3) 创建了一个最小值为 1.2,最大值为 28.2,公差为 3 的序列,在编译器中,它的存储形式是一个变量。

在这里插入图片描述
right = FALSE 的作用是让区间是左闭右开的区间。 如果right = TRUE就是左闭右开。

结果如下:
顺眼很多了
(3)频率还是频数。
在参数中添上aex(y=…density…):

geom_histogram(color="black",
				fill="blue",
				alpha=0.5,
				breaks=seq(1.2,28.2,by=3),right=FALSE,
				aes(y=..density..))

结果如下:
在这里插入图片描述
(4)设置 x x x轴刻度:
要用到一个新的函数scale_x_continuous()

scale_x_continuous(limits=c(1.2,28.2),
					breaks=seq(1.2,28.2,by=3),
					name="x")

#limits:设置刻度的最小值和最大值;与上面一样,以一个向量作为breaks的参数;name是x轴的标签。

结果如下:
在这里插入图片描述
用类似的方式可以设置y轴的标签:
在这里插入图片描述

4、最终代码

最终代码:

library(ggplot2)
library(readxl)  			  #加载宏包
shuju = read_xlsx("Q1.xlsx")      
	  f = ggplot(data=shuju,aes(x=number))  +
		geom_histogram(color="black",
		   			    fill="blue",
		   			   alpha= 0.5,
		              breaks=seq(1.2,28.2,by=3),right=FALSE,
		               aes(y=..density..))  +
        scale_x_continuous(limits=c(1.2,28.2),
  					       breaks=seq(1.2,28.2,by=3),
  					         name="x")
print(f)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值