• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言描述统计第二弹 | 不同舱位乘客幸存人数的图像表达

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

作者:丁点helper 

来源:丁点帮你

上篇文章利用泰坦尼克号沉船事件中乘客的存活情况介绍了描述性数据分析,计算了不同舱位乘客的幸存率,今天我们来看看如何用图像来直观表达。

我们先来简单复习一下titanic.csv的内容。

# 导入数据
titanic <- read.csv("//Users//Desktop//titanic.csv",header = TRUE) 
names(titanic) # 查看titanic中的变量名
head(titanic)  # 查看titanic前6行

上篇文章计算的不同舱位乘客的死亡与幸存人数如下:

table(titanic$survived,titanic$pclass)
                1st 2nd 3rd  
died         123 158 528  
survived   200 119 181

不同舱位生存率:

survpct=paste(round(tab1[2, ]/apply(tab1,2,sum)*100,2),"%",sep="")
survpct
[1] "61.92%" "42.96%" "25.53%"

如果我们想直观地描述不同舱位乘客的幸存率,可以用下面的做法:

绘制柱状图

barplot(table(titanic$survived,titanic$pclass))

barplot()是绘制柱状图的函数,该函数括号中的命令为绘图所需的数据,就是前面我们计算过的不同舱位死亡及幸存者人数。

柱状图的颜色也可调整,下面的代码中,col是更改柱状图颜色的命令:

barplot(table(titanic$survived,titanic$pclass), 
        col=c("yellow","dark blue"))

每个舱位死亡与幸存人数柱子的排列方式也可调整,beside为改变柱状图排列方式的命令;beside=T意为两个柱子并排,beside=F意为两个柱子上下叠放。

barplot(table(titanic$survived,titanic$pclass),
        col=c("yellow","dark blue"), beside=T)

至此,我们已经可以将数字转变为直观的图像了,但是黄色和蓝色的柱子分别代表幸存者还是死亡者呢?此外,图像的标题等重要信息也未标示出来,图像的可读性还需要通过下面的步骤来提升:

设置图例、标题、坐标轴标签等

做法比较简单,在上面代码的基础上,增加一些命令即可:

barplot(table(titanic$survived,titanic$pclass), 
        col=c("yellow","dark blue"),
        beside=T, legend=T, args.legend=list(x="topleft"),
        main="Survival (Pct) by Passenger Class", 
        xlab="Class",ylab="Count",
        ylim=c(0,600))

legend为设置图例的命令;args.legend为设置图例位置的命令;

main为设置图标题的命令;

xlab、ylab分别为设置x轴和y轴名称的命令;

ylim为设置y轴范围的命令。

从这个图像可以清晰地看出,一等舱的幸存者人数为三个舱位中最多的,而三等舱的死亡者人数远高于其他两个舱位。但是这个图像还缺少一个信息,就是各舱位的存活率,我们可以在每个舱位的柱子上面标记一下:

text(c(2,5,8),c(250,250,570),survpct, cex=1.2)

text()为给图片中增加文字的函数。

其中前两个命令为文字的位置信息,第一个命令为文字设置x轴方向的位置信息,c(2,5,8)表示将文字分别放置在x取值为2,5,8处。

第二个命令为文字增加y轴方向的位置信息,c(250,250,570)表示将其分别放置在y取值为250,250,570处。

第三个命令为文字的具体内容,survpct是之前程序的运行结果,为一、二、三等舱乘客的幸存率。

第四个命令cex为文字字号,默认值为1,此处设置为1.2,意为比默认字号大20%。

以上代码默认标题、x轴、y轴的文字均为英文,但有时我们也需要将其设置为中文,此时只需在上面这段代码中增加一个『字体 (family)』命令:将图片中的文字设置成中文。

barplot(table(titanic$survived,titanic$pclass), col=c("red","blue"),
        beside=T, legend=T, args.legend=list(x="topleft"), 
        main="不同舱位乘客幸存数(率)", xlab="舱位",ylab="人数",family = "SimHei",
        ylim=c(0,600))

family命令需要赋值字体的英文名称,本文将字体设置为"SimHei",即黑体。

此处还可设置其他字体,以下链接中总结了常见中文字体的英文名,大家可根据自己的需要选择。

部分字体中英文名称,资料来源于下面的链接

http://guangzheng.name/2017/12/18/%E5%A6%82%E4%BD%95%E8%B0%83%E6%95%B4R%E8%AF%AD%E8%A8%80%E7%BB%98%E5%9B%BE%E7%9A%84%E5%AD%97%E4%BD%93/

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言参数传递按引用传递发布时间:2022-07-18
下一篇:
R语言画棒状图(bar chart)和误差棒(error bar)发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap