R中的柱形图(更新版)

有任何建议或疑问,请加 QQ: 1595218767 ,共同探讨学习
如R/python代码编程作图等方面需要帮忙,欢迎来店咨询 之恒科技, 挥动热情的小爪爪期待你哦

今天更新了一版 ggplot 制作 barplot ,前后还是有差异的,大道至简,信甚焉。

barplot_r.png

数据获取

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
bar1.png

下图是别人家洋老师布置的洋作业,最初以为一行代码就能搞定,结果硬生生耗费了一下午,完整回顾了ggplot2 文档的边边角角。
不由想起了大学看的<满汉全席>,哈林哥唱曰:
hi 蛋炒饭 最简单也最困难,饭要粒粒分开 还要沾着蛋
hi 蛋炒饭 最简单也最困难,这五千年的火的艺术就在这一盘
废话不说,上图, 有余力的朋友可以自我挑战下,坑坑不息而后生生不息
对代码有想法的同学可以联系 文章开头的qq

barplot_r.png

你可能感兴趣的:(R中的柱形图(更新版))