公众号:R语言数据分析与实践
library(readxl) #读取数据
educationdata <- read_excel("Downloads/educationdata.xlsx") #数据保存在桌面上
par(family="PingFangSC-Regular") #中文字体设置
image <- barplot(cbind(中央部门办本科院校, 本科院校,高职专科院校) ~ 地区, data = educationdata, #导入数据,y~x,cbind决定顺序
col=c("#003366","#0099CC","#66CCFF"), #颜色可以使用十六进制或者名称
space = 0.3, #条形空隙间距
border= "#FFFFFF", #条形边框颜色,NA消除边框
density=100, #底纹,默认为NULL
beside = FALSE, #堆叠条形图,TRUE为并列
horiz = TRUE, #水平绘制
main = "条形图绘制案例" , #统计图主标题
names.arg = educationdata$地区, #条形名字
axisnames =TRUE, #显示条形名称,默认TRUE
las =1, #较长文字,文字显示方向
xlab = "地区", #x轴标签
ylab = " " , #y轴标签
cex.axis =1, #坐标轴标签放大系数
cex.names = 0.7, #名称标签放大系数,通常大小和条形宽度一致
legend.text=TRUE, #绘制图例
)
mtext("每日一图",side=3) #在指定区域, 边=3处书写文本
abline(v = 60, col = 2, lty = 2, lwd = 2) #v绘制垂线, col颜色
abline(v= 95, col = "orange", lty = 3, lwd = 3) #lty 线条类型, lwd线条粗细
leg.txt <- c("中央部门办本科院校","本科院校","高职专科院校")
legend("topright", legend = leg.txt, #位置
fill=c("#003366","#0099CC","#66CCFF"), #图例填充颜色
text.width = strwidth("1000,000,000"), #字体占位
cex = 0.7, #字体大小
border=FALSE, #图列边框,默认TRUE
title = "图例") #图例标题
#创建每条数据标签
#数据转换为named num类型,让每个数据与名称相对应
tot <- c(educationdata$合计) #需要显示的数据
names(tot) <- educationdata$地区[1:31] #将名称与数据相关联,在绘制数据时与条形相对应
str(tot) #检查tot数据类型为Named num类型
tot
View(tot) #检查数据类型为Named num类型,否则无法对应条形绘制数据标签
text(image, #在已绘制的barplot上添加文本
x=40, #绘制位置
format(tot), #绘制数据
col = "black", #字体颜色
cex = 1, #字体大小,与条形宽度一致
family="PTSans-Caption" #数字字体
)