Barplot/pie/boxplot作图详解——R语言
当数据以简单的可视化的形式呈现时,数据便更具有意义并且更容易理解,因为人眼很难从原始数据中得出重要的信息。因此,数据可视化成为了解读数据最重要的方式之一。条形图和箱线图是了解变量分布的最常用的图形工具,这两种图在数据比较方面(比较统计学)也可以发挥很大的作用,在数据分析中的使用频率很高。
一、条形图barplot
柱状图(条形图)是一类非常重要的统计图表,在数据分析中的使用频率很高,今天我们就来一起看看在R语言中如何绘制柱状图,本文基本上涵盖了我在数据分析项目中绘制柱状图的全部需求,希望能够帮助大家一次性“搞定”柱状图。
绘制条形图十分简单,barplot()函数的使用方法如下:
barplot(height, width = 1, space = NULL,
names.arg = NULL, legend.text = NULL, beside = FALSE,
horiz = FALSE, density = NULL, angle = 45,
col = NULL, border = par("fg"),
main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
axes = TRUE, axisnames = TRUE,
cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
add = FALSE, ann = !add && par("ann"), args.legend = NULL, ...)
#它们的书写顺序不一定要按照上面给出的顺序,可以自己随便写一个顺序,参数也不一定要写全。
参数说明
参数 | 说明 |
---|---|
h | 在条形图中使用的数值的向量或矩阵 |
names.arg | 每个条下出现的名称的向量 |
xlab | x轴的标签 |
ylab | y轴的标签 |
main | 条形图的标题 |
col | 条形图的颜色 |
border | 条形图边框的颜色 |
h<-c(1,2,3,4,5,5)
M<-c("MAR","APR","JUN","JUL","AGU","JAN")
barplot(h,names.arg= M,xlab="Month",ylab = "Rain",col="blue",main="Rain chart",border = "red")
barplot(height = matrix(1:6, ncol = 3, nrow = 2), # 绘图数据(矩阵)
names.arg = c('男', '女', '未知'), # 柱子名称
family = 'Kai', # 中文字体
col = c('orange', 'steelblue'), # 填充颜色
border = '#ffffff') # 轮廓颜色
二、饼图pie——结构图
饼图在商业世界中无所不在,然而多数统计学家,包括相应R文档的编写者却都对它持否定态度。相对于饼图,他们更推荐使用条形图或点图,因为相对于面积,人们对长度的判断更精确。也许由于这个原因,R中饼图的选项与其他统计软件相比十分有限,不过饼图在表示结构数据上具有天然的优势。
pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL,
lty = NULL, main = NULL, ...)
参数的描述
参数 | 说明 |
---|---|
x | 饼图中使用的数值的向量 |
labels | 给出切片的描述 |
radius | 饼图圆的半径(值-1和+1之间) |
main | 图表的标题 |
col | 颜色调色板 |
clockwise | 片段是顺时针还是逆时针绘制的逻辑值 |
density | 底纹的密度,默认为NULL |
x <- c(12,32,14,23,15,32)
#建立颜色向量z
z <- c('green','gray','yellow','blue','red','orange')
#绘制饼图m
m <- pie(x,main='问题:调查结果统计',density =80,angle=30,col=z,radius=1.05)
# Create data for the graph.
x <- c(21, 62, 10,53)
labels <- c("London","New York","Singapore","Mumbai")
piepercent<- round(100*x/sum(x), 1)
# Plot the chart.
pie(x, labels = piepercent, main = "City pie chart",col = rainbow(length(x)))
legend("topright", c("London","New York","Singapore","Mumbai"), cex = 0.8,
fill = rainbow(length(x)))
三、箱线图boxplot
箱线图(Box plot)也称箱须图(Box-whisker Plot)、箱线图、盒图,可以用来反映一组或多组连续型定量数据分布的中心位置和散布范围,因形状如箱子而得名。1977年,美国著名数学家John W. Tukey首先在他的著作《Exploratory Data Analysis》中介绍了箱形图。箱线图(又称盒须图)通过绘制连续型变量的五数总括,即最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量的分布。
R语言中绘制箱线图函数的函数用法为:
boxplot(formula, data = NULL, ..., subset, na.action = NULL,xlab = mklab(y_var = horizontal),ylab = mklab(y_var =!horizontal), add = FALSE, ann = !add, horizontal = FALSE,drop = FALSE, sep = ".", lex.order = FALSE)
R语言中绘制箱线图函数的默认用法为:
boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,notch = FALSE, outline = TRUE, names, plot = TRUE,border = par("fg"), col = NULL, log = "",pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5), ann = !add, horizontal = FALSE, add = FALSE, at = NULL) Arguments
参数 | 说明 |
---|---|
x | 向量,列表或数据框 |
formula | 公式,形如y~grp,其中y为向量,grp是数据的分组,通常为因子 |
width | 箱体的相对宽度 |
plot | 是否绘制箱线图还是显示相关信息 |
main | 标题 |
xlab,ylab | X轴标题,Y轴标题 |
dev.off()
par(mfrow=c(3,3))
boxplot(mpg ~ cyl, data=mtcars)
boxplot(mpg ~ cyl, data=mtcars,
width = c(1,2,3)) #箱体的相对宽度
boxplot(mpg ~ cyl, data=mtcars,
width = c(1,2,3),notch = TRUE) #含凹槽的箱线图
boxplot(mpg ~ cyl, data=mtcars,
names = c("a","b","c")) #修改下方标签名字
boxplot(mpg ~ cyl, data=mtcars,
plot = FALSE) #显示信息,但是不绘制图
boxplot(mpg ~ cyl, data=mtcars,
col = "red") #箱体颜色
boxplot(mpg ~ cyl, data=mtcars,
border = "red") #箱体边框颜色
boxplot(mpg ~ cyl, data=mtcars,
main = "标题")
boxplot(mpg ~ cyl, data=mtcars,
xlab = "XX")
boxplot(mpg ~ cyl, data=mtcars,
ylab = "YY")
总结
条形图和箱线图是最常用的两类图形,用以观察数据的整体分布。箱形图包含数学统计量,不仅能够分析不同类别数据各层次水平差异,还能揭示数据间离散程度、异常值、分布差异等等。
参考文献
R语言:使用barplot()绘制柱状图(条形图)
语言-箱线图-boxplot()
试验研究中的利器--强大的直方图和箱线图
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)