有任何建议或疑问,请加 QQ: 1595218767 ,共同探讨学习
如R/python代码编程作图等方面需要帮忙,欢迎来店咨询 之恒科技, 挥动热情的小爪爪期待你哦
今天更新了一版 ggplot 制作 barplot ,前后还是有差异的,大道至简,信甚焉。
数据获取
mali.xo=subset(trac.spss,trac.spss$a3==1)
mali.xo$a3=factor(mali.xo$a3)
数据筛选
mean1 <- apply(focus1[,16:ncol(focus1)],1,mean)
max1 <- apply(focus1[,16:ncol(focus1)],1,max)
focus3 <- focus1[-(mean1<=3&max1<=3),]
dim(focus1);dim(focus3)
数据整理
作图要求格式进行数据提取及整理
mean2 <- apply(focus3[,16:ncol(focus3)],2,mean)
imp5 <- data.frame(type=names(mean2),value=mean2)
imp5 <- imp5[order(imp5$value),]
作图
分割线位置及标签位置计算
base_line1 <- data.frame(x=c(nrow(imp5)-sum(imp5$value>=quantile(imp5$value,0.8))+0.5,
nrow(imp5)-sum(imp5$value>=quantile(imp5$value,0.5))+0.5),
y=rep(round(imp5[nrow(imp5)-sum(imp5$value>=quantile(imp5$value,0.8))+1,2],2)+0.2,2))
开始做图
此图完全可以按照最后一张图的标准更新一版,一是作者比较懒,二是留下给最后的图做个参照,也算不枉当初画他出来。代码就放在这 有碍观瞻 了。
library(ggplot2)
ggplot(imp5,aes(reorder(type,value),value,fill=''))+
geom_bar(stat = 'identity',width = 0.5)+ #罗列所有数据
geom_bar(data=imp5[imp5$type=='butienanyi',],fill='lightblue',
stat = 'identity',width = 0.5)+ #突出重点数据
geom_text(aes(y=value-0.1,label=round(value,2)),size=3,color='white')+ #添加所有value label
下图是别人家洋老师布置的洋作业,最初以为一行代码就能搞定,结果硬生生耗费了一下午,完整回顾了ggplot2 文档的边边角角。
不由想起了大学看的<满汉全席>,哈林哥唱曰:
hi 蛋炒饭 最简单也最困难,饭要粒粒分开 还要沾着蛋
hi 蛋炒饭 最简单也最困难,这五千年的火的艺术就在这一盘
废话不说,上图, 有余力的朋友可以自我挑战下,坑坑不息而后生生不息
对代码有想法的同学可以联系 文章开头的qq