负基础的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)