R语言学习——小提琴图和箱线图

该文展示了使用R语言进行数据读取、处理,然后通过boxplot函数创建箱形图来比较不同性别群体的体重分布,同时进行了T检验以确定差异显著性。此外,还利用violin_plot函数绘制了小提琴图,并将两种图形结合在同一张图中展示,以增强数据可视化效果。
摘要由CSDN通过智能技术生成
mydata<- read.table('/Users/zhangzhishuai/Downloads/25 R散点图和折线图(一)/25-28节/BMI.txt',sep = '\t', header = T, row.names = 1)
boxplot(weight~gender,mydata)

tapply(mydata$weight, mydata$gender, summary)
boxplot(weight~gender,mydata,
        boxwex=0.4, #调整宽度
        las = 2, #x轴标签横着放还是竖着放
        horizontal = F #箱子水平或者竖直
        )
boxplot(weight~gender,mydata,
        xaxt='n' # 不画x轴标签
        # yaxt='n' # 不画y轴标签
        )

#第一种加x标签方法
text(1:2, # 第一个盒子,x轴坐标就是1,第n个盒子,x轴坐标就是n
     par('usr')[3], #取下边缘 (左右下上位置)
     labels = c('female','male'),
     srt=30,
     cex=1,
     adj = c(1,1),
     xpd = T
     )

# 第二种加x标签方法
boxplot(weight~gender,mydata,
        xaxt='n' # 不画x轴标签
        # yaxt='n' # 不画y轴标签
)
axis(1, #控制轴放在哪个方向1234-下左上右
     at=1:2, #箱子位置
     labels = c('female','male')
     )
# 添加主标题横竖轴表题
boxplot(weight~gender,mydata,
        boxwex=0.4, #调整宽度
        las = 1, #x轴标签横着放还是竖着放
        main='weight box',
        ylim = c(55,80),
        xlab = 'gender',
        ylab = 'weight',
        col = c('red','blue') # 指定箱子颜色
)

result = t.test(weight~gender,mydata) # T检验根据gender比较weight有没有显著差异
attributes(result) # 看一个变量的属性

pval=round(result$p.value,#获取p值
           3 #保留三位小数
           )
#添加线
lines(c(1,2) # x轴坐标
      ,c(76,76), #y轴坐标
      lwd =2, #线的粗细
      lty=2, #线的类型
      col='blue'
      )
#添加文字
text(1.5,#横坐标
     77,#纵坐标
     paste('pvalue =',pval)
     )
text(1.25,77,'**',col='red',cex=1.5) # 添加显著性标志**

# 小提琴图(宽的地方密度高)
library(plotrix)
violin_plot( #自动找因子分组
  unstack(
  mydata[,c('weight','gender')]
  ),
  col = c('red','blue'),
  violin_width = 0.8 #设置宽度
)

# 将小提琴图和箱型图放一张图中

pdf(file = '/Users/zhangzhishuai/Downloads/25 R散点图和折线图(一)/25-28节/123.pdf', width = 12)
par(mfrow=c(1,2))
violin_plot( #自动找因子分组
  unstack(
    mydata[,c('weight','gender')]
  ),
  col = c('red','blue'),
  violin_width = 0.8 #设置宽度
)
boxplot(weight~gender,mydata,
        boxwex=0.4, #调整宽度
        las = 1, #x轴标签横着放还是竖着放
        main='weight box',
        ylim = c(55,80),
        xlab = 'gender',
        ylab = 'weight',
        col = c('red','blue') # 指定箱子颜色
)

dev.off()

BMI.txt
name height weight gender BMI
tom 180 75 male 23.1481481481481
cindy 165 58 female 21.3039485766759
jimmy 175 72 male 23.5102040816327
sam 173 68 male 22.7204383708109
lucy 160 60 female 23.4375
lily 165 55 female 20.2020202020202

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值