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