【NEW-4.0】R-基本图形
前言
这不是基本图形的说明使用,例如常见的条形图,饼图,直方图等,此内容可以当作快速查阅手册。
条形图
简单条形图
条形图通过函数barplot()
来实现,函数原型如下:
1 | barplot(height, width = 1, space = NULL, |
height
:接收一个向量参数,根据向量参数内容绘制图形- **
horiz = TRUE
**:设置为TRUE
则图形会生成水平条形图 main
:图形标题xlab
:X 轴标签ylab
:Y 轴标签
代码示例:
1 | barplot(trees$Girth,horiz = TRUE,main = '这是标题', |
运行效果:
如果希望标签距离图表更近一些,可以通过额外设置mtext
来增加外边框的文本标签,例如:
1 | barplot(trees$Girth,horiz = TRUE,main = '这是标题', |
运行效果:
如果需要绘制的变量是一个因子或者有序型因子,可以直接使用
plot()
绘制垂直条形图
堆砌条形图和分组条形图
如果传入的Height
参数不是向量而是一个矩阵,则绘制的结果是堆砌条形图或者分组条形图。堆砌条形图和分组条形图取决于参数beside=FALSE/TRUE
,如果为TRUE
,则矩阵中的每一列表示一个分组,各列的值将并列而不是堆砌;如果为FALSE
,则矩阵中的每一列都生成图中的一个条形,其高度取决于其值。
代码示例:
1 | opar = par(no.readonly = TRUE) |
运行效果:
均值条形图
可以将数据计算出各种平均值,中位值等结果生成相关条形图,代码示例:
1 | barplot(c(summary(trees$Girth)), |
运行效果:
关于文本显示不全问题,可以参考关于R以及Rstudio的相关问题,或者查看下面内容
条形图微调
随着条数的增多,标签可能会重叠或者消失,可以通过如下参数来调整:
cex.names
:(数值型)小于 1 的数值表示缩小标签字体大小names.arg
:(向量)允许自定义标签内容las=2
:旋转字体朝向
棘状图
这是一种特殊的条形图,棘状图对堆砌图进行重缩放,使得每个条形的总值为 1 ,而每一段数据则以比例来呈现。棘状图可以通过vcd
包中的spine()
来绘制,代码示例:
注意:
spine
传递的参数必须是双向表,即table
1 | # 棘状图 |
运行效果:
饼图
饼图随处可见,可以通过函数pie
来创建,其函数原型如下:
1 | pie(x, labels = names(x), edges = 200, radius = 0.8, |
x
:(数值型)表示每个扇形所占的面积labels
:(向量/单体取决于X)表示每个扇形的标签
代码示例:
1 | # 饼图 |
运行效果:
如果希望实现3D
饼图的效果,则可以使用plotrix
包中的pie3D()
函数来实现,代码示例:
1 | # 3D饼图 |
explode
:表示饼的分离程度
运行效果:
如上图,在不标注标签数值的情况下,我们的肉眼获取无法区分”西瓜”和”橘子”的大小区别,这个时候可以使用扇形图。它是通过plotrix
包中的fan.plot()
函数来实现的。代码示例:
1 | # 3D饼图 |
运行效果:
直方图
直方图是一种类似于条形图的图,它通过将X轴的值连续起来,然后Y值显示其高度,通过函数hist()
函数来创建,函数原型如下:
1 | hist(x, breaks = "Sturges", |
x
:数据值freq
:(布尔值)当值为FLASE
表示根据概率密度而不是频数绘制图形breaks
:用于控制组的数量
在定义直方图中的单元时,默认将生成等距切分。代码示例:
1 | # 直方图 |
运行效果:
density(x)
:生成密度数据
核密度图
核密度图时用于估计随机变量密度概率的一种非参数方法,绘制核密度图的方法为:
1 | plot(density(x)) |
代码示例:
1 | # 核密度图 |
polygon
:绘制指定值下的多边形区域,可以理解为填充指定区域
运行效果:
核密度可以通过分组来比较组间的差异,可以通过使用sm
包中的sm.density.compare()
来实现,具体方法和实现效果自行查询,此处不做说明。
箱线图
箱线图又称为盒须图,通过绘制连续型变量的五数总括,即最小值,下四分位数(第25百分位数),中位数(第50百分位数),上四分位数(第75百分位数)以及最大值,描述了连续型变量的分布。
通过函数boxplot
来实现,函数原型如下:
1 | boxplot(formula, data = NULL, ..., subset, na.action = NULL, |
代码示例:
1 | # 箱线图 |
运行效果:
可以通过boxplot.stats(x)
来输出用于构建图形的统计量。
并列箱线图
可以通过传入参数的时候传入如下格式的参数即可:
1 | boxplot(并列数据1~并列数据2) |
具体用法和实现效果自行查询,此处不做说明
小提琴图
有一种特殊的箱线图,它结合了核密度图,形成了新的图形即小提琴图。
可以通过vioplot
包中的vioplot()
函数来绘制,函数原型如下:
1 | vioplot(x, use.cols = TRUE, ...) |
代码示例:
1 | # 小提琴图 |
运行效果:
关于小提琴图的更多说明,请自行查询
点图
点图顾名思义,在图中根据数据绘制大量的点,可以通过dotchart()
函数来实现,其函数原型如下:
1 | dotchart(x, labels = NULL, groups = NULL, gdata = NULL, offset = 1/8, |
labels
:用来指点每个点的标签
代码示例:
1 | # 点图 |
运行效果:
End
关于 R 的基本图形如上所示,其更多的自定义参数可以查询官方文档,或者自行网络查询。