kikithree

该文使用R语言对Titanic数据集进行分析,包括数据预处理、数据转换,然后通过绘制箱线图、条形图、帕累托图、脊形图、热力图、玫瑰图等多种图表,展示性别与存活率的关系,以及不同类别的分布情况。同时,进行了独立性检验和马赛克图展示,深入理解数据间的关联性。
摘要由CSDN通过智能技术生成

#练习
?Titanic
data(Titanic)
head(Titanic)
str(Titanic)
library(DescTools)
df <- Untable(Titanic) #将列联表转化为原始的数据框形式
str(df)
head(df)
df <- as.data.frame(Titanic)
getwd()
d <- read.csv(file = "data2_1.csv",head=T)
attach(d)
head(d)
par(mfrow=c(1,2),mai=c(0.4,0.4,0.5,0.5),cex=0.7,cex.main=1,font.main=1)
plot(R~factor(性别),xlab="性别",main="箱线图")
#绘制sex和survived的并列条形图和堆叠条形图,为条形图添加频数标签
data(Titanic)
head(Titanic)
newdata <- as.data.frame(Titanic)
attach(newdata)
library(DescTools)
par(mfrow=c(1,2),mai=c(0.5,0.6,0.8,0.2),cex.main=1)
tab1 <- table(Sex,Survived)
tab1
tb1<- xtabs(Freq ~ Sex+ Survived, data = newdata)
tb1
b1 <- barplot(tb1,xlab = 'Survived',ylab = '人数',ylim=c(0,1500),main = '图1',
              legend.text=c("male","female"),col=c('#66C2A5','#FC8D62'))
BarText(tb1,b=b1,beside=T)#设置频数标签
#并列条形图(beside=T)
library(sjPlot)
b1 <- barplot(tb1,beside = TRUE,xlab = 'Survived',ylab = '人数',ylim=c(0,1500),main = '图1',
              legend.text=c("male","female"),col=c('#66C2A5','#FC8D62'))
#脊形图
df
df <- df[,-1]
par(mfrow=c(1,2),mai=c(0.5,0.6,0.8,0.2),cex.main=1)
data.drop('class',axis = 1,inplace = True)
spineplot(factor(Sex)~factor(Survived),data=df,xlab="Sex",ylab="Survived",main="性别与存活率")
#注意书上的那些函数用的数据类型,如p19所示,是原始的数据框形式,也就是通过untable变化后的
#帕累托图
df
attach(df)
x <- sort(table(df$Class),data=df,decreasing = T)
x
bar <- barplot(x,xlab="Survived",ylab="人数",ylim = c(0,1400),main="帕累托图")
text(bar,x,labels = x,pos = 3,col = "black")
y <- cumsum(x)/sum(x)
par(new=T)
plot(y,type="b")
axis(side=4)
mtext("累积频率",side = 4,line = 3,cex = 0.8)
text(labels="累积分布曲线",x=2.4,y=0.95,cex=1)
df
##画条形树状图和矩形树状图
library(plotrix)
sizetree(df,showval = T,showcount = T,stacklabels = T,border = "black",base.cex = 0.7)
library(treemap)
df <- as.data.frame(Titanic)#带有类别频数的数据框
df <- data.frame(d[,-5],频数=d$Freq)
treemap(df,index=c("Class","Sex","Age","Survived"),vSize="Freq",type="index",fontsize.labels=9,position.legend="bottom",title="")
#独立性检验的p值图
library(sjPlot)
df <- Untable(Titanic)
df
sjp.chi2(df,show.legend = T,legend.title = "p值色标",title="Pearson卡方独立性检验")
#带观测频数的马赛克图
library(vcd)
ftable(Titanic)  
mosaic(Titanic,shade=TRUE,labeling=labeling_values,legend=TRUE,las=1) 
#class和suevived气球图、热图、南丁格尔玫瑰图
library(ggpubr)
tab <- ftable(Titanic)#列联表形式
df <- as.data.frame(tab)
ggballoonplot(df,x="Class",y="Survived",shape = 21,size="Freq",fill = "Freq",rotate.x.text = F)
library(ggiraphExtra);require(ggplot2);library(gridExtra)
df <- Untable(Titanic)
ggHeatmap(df,aes(x=Class,y=Survived),addlabel = T,palette = "Reds")+ggtitle("矩形热力图")
?ggHeatmap
library(ggiraphExtra);require(ggplot2);library(gridExtra)
attach(df)
tab1 <- ftable(Class,Survived)
d1 <- as.data.frame(tab1)
d1
ggRose(d1,aes(x=Class,y=Freq,fill=Survived),stat="identity",addlabel = T,reverse=T)+ggtitle("南丁格尔玫瑰图")
#绘制Class的饼图(graphics、扇形图、环形图和弧形图
#饼图
df <- Untable(Titanic)
tab <- table(df$Class)
name <- names(tab)
percent <- prop.table(tab)*100
labs <- paste(name,"",percent,"%",sep="")
pie(tab,labels = labs,init.angle = 90,radius = 1)
#扇形图(plotrix
library(plotrix)
df <- Untable(Titanic)
tab <- table(df$Class)
name <- names(tab)
percent <- prop.table(tab)*100
labs <- paste(name,"",percent,"%",sep="")
fan.plot(tab,labels = labs,max.span = 0.9*pi,shrink = 0.06,radius = 1.2,label.radius = 1.4,ticks = 200)
#环形图
library(ggiraphExtra);require(ggplot2);library(gridExtra)
df <- Untable(Titanic)
ggDonut(df,aes(donuts=Class),title = "环形图")
#弧形图(ggpol,ggplot2)
library(ggpol);require(ggplot2);library(gridExtra)
df <- Untable(Titanic)
tab1 <- ftable(df$Class)
d1 <- as.data.frame(tab1)
df1 <- data.frame(Class=d1$Var1,频数=d1$Freq)#行变列,列表加标题
df1
ggplot(df1)+geom_arcbar(aes(x=Class,shares=频数,fill=Class,r0=5,r1=10),sep=0.05,show.legend = T)+coord_fixed()+ggtitle("class")+theme_void()
#Class和Sex饼环图
library(ggiraphExtra);require(ggplot2);library(gridExtra)
df <- Untable(Titanic)
ggPieDonut(data=df,aes(pies=Sex,donuts=Class),title="饼环图")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值