分享

30 天学会R DAY 17:R语言绘图入门

 妙趣横生统计学 2019-12-08

第17天 R语言绘图入门

R 的绘图功能一直为业内所津津乐道。R语言具有强大的图形可视化功能,可以逐条输入语句构建图形元素(颜色、点、线、文字、及图例等),逐渐完善图形特征,直到得到想要的效果。常见的R绘图相关包括R自带的基础绘图系统(base),lattice包,和ggplot2包。在ggplot2流行前,lattice包是非常有用的高级绘图系统,但现在ggplot2可以绘制出极其美观的图像,所以一般的绘图,base+ggplot2就已经够用了,所以,我们的课程就是以这2个系统进行绘图教学。

本文主要利用R语言自带的base包进行绘图,ggplot2在今后讨论。

一、base绘图系统

Base包绘制图形一般包括三部分内容。主函数、辅助函数和参数

1、主函数

plot() 常见绘制散点图

pairs() 散点图矩阵

hist()  直方图

boxplot 箱式图

dotchart() 点图

barplot() 条形图

pie() 饼图

corrgram() 相关图

qqplot(), qqline(), qqnorm()QQ

heatmap() 热图等

2. 主函数参数

font=字体

lty=线类型

lwd=线宽度

pch=点的类型

xlab=横坐标

ylab=纵坐标

xlim=横坐标范围

ylim=纵坐标范围

main=图内标题

2、 辅助函数

辅助函数在主函数基础上添加元素,一般在主函数内部进行设置,主要包括

par()         同时绘制子图数

legend()   图例

Lines()     线条

Curve()    曲线

Abline()    直线

Points()    

Arrows()    箭头

Title()       标题

Text()       文字

Mtext()     图框周围文字

grid()      栅格线

axis()       坐标轴

上述函数,可设置不同的参数,进行图形的细节的处理

二、基本绘图系统举例

绘图系统主函数、辅助函数、参数,三者联合起来同时运作。

导入之前数据集

t1<-read.csv("elder1.csv")

t2<-read.csv("elder2.csv")

str(t2)

str(t1)

1. 我们绘制婚姻状况的直条图

counts <- table(t2$marriage) # 首先的汇总数据

> counts

  1    2    3    4    5

 10 3600   48  342    6

#调用辅助函数par()同个时间绘制一行2列的图

par(mfrow=c(1,2))  

#调用主函数barplot(),绘制竖直条形图

barplot(counts, main = "Simple Bar Plot",

       xlab = "marriage", ylab = "number")

#调用主函数barplot()绘制水平直条形图

barplot(counts, main = "Horizontal Bar Plot",

       xlab = "number", ylab = "marriage",

       horiz = TRUE) #水平条形图

#我们可以看出,barplot()函数中,除了对象counts外,包括了很多参数,具体大家可以通过help()语句进行学习

2. 计算血压的直方图

#调用辅助函数par()同个时间绘制22列的图

par(mfrow = c(2, 2))

#简单直方图主函数hist()

hist(t1$SBP) #简单直方图

#直方图函数hist(),指定组数和颜色

hist(t1$SBP, breaks = 12, col = "red",

    xlab = "SBP", main = "SBP Distribution") #指定组数和颜色

#直方图函数hist(),指定组数和颜色,添加密度曲线

hist(t1$SBP, freq = FALSE, breaks = 12,

    col = "red", xlab = "SBP",

    main = "SBP Distribution with density curve")

#辅助函数,添加密度曲线

lines(density(t1$SBP), col = "blue", lwd = 2)

#直方图函数hist(),指定组数和颜色,添加正态密度曲线

x <-t1$SBP

hist(x, breaks = 12, freq=FALSE, col = "red",

    xlab = "SBP",

    main = "SBP Distribution with density curve")

#辅助函数,添加密度曲线

lines(density(rnorm(1e+6,mean(t1$SBP),sd(t1$SBP))),lty=2,col="red")

更多例子,诸位可以查看R语言学习文档关于绘图的介绍和案例。但是,我想R语言最大的绘图优势是它有ggplot2,接下来我们将逐步介绍它的功能。

最后,一个月就能学会R语言,你敢挑战一下吗?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多