本节书摘来异步社区《R数据可视化手册》一书中的第3章,第3.8节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.8 绘制百分比堆积条形图

问题
如何绘制可展示百分比的堆积条形图(又叫百分比堆积条形图)?

方法
首先,通过plyr包中的ddply()函数和transform()函数将每组条形对应的数据标准化为100%格式,之后,针对计算得到的结果绘制堆积条形图即可,如图3-20所示。

library(gcookbook) # 为了使用数据
library(plyr)
# 以Date为切割变量()对每组数据进行transform()
ce <- ddply(cabbage_exp, "Date", transform,percent_weight = Weight / sum(Weight) * 100)ggplot(ce, aes(x=Date, y=percent_weight, fill=Cultivar)) +geom_bar(stat="identity")

讨论
我们用ddply()函数计算每组Date变量对应的百分比。本例中,ddply()函数根据指定的变量Date对数据框cabbage_exp进行分组,并对各组数据执行transform()函数(ddply()函数中设定的其他参数也会传递给该函数)。

下面是cabbage_exp数据,从中可以看出ddply()命令对其进行操作的过程。

cabbage_expCultivar Date Weight    sd n     sec39 d16  3.18 0.9566144 10 0.30250803c39 d20  2.80 0.2788867 10 0.08819171c39 d21  2.74 0.9834181 10 0.31098410c52 d16  2.26 0.4452215 10 0.14079141c52 d20  3.11 0.7908505 10 0.25008887c52 d21  1.47 0.2110819 10 0.06674995ce <- ddply(cabbage_exp, "Date", transform,percent_weight = Weight / sum(Weight) * 100)Cultivar Date Weight    sd n     se percent_weightc39 d16  3.18 0.9566144 10 0.30250803    58.45588c52 d16  2.26 0.4452215 10 0.14079141    41.54412c39 d20  2.80 0.2788867 10 0.08819171    47.37733c52 d20  3.11 0.7908505 10 0.25008887    52.62267c39 d21  2.74 0.9834181 10 0.31098410    65.08314c52 d21  1.47 0.2110819 10 0.06674995    34.91686

计算出百分比之后,就可以按照绘制常规堆积条形图的方法来绘制百分比堆积条形图了。

跟常规堆积条形图一样,我们可以调整百分比堆积条形图的图例顺序、更换调色板及添加边框线,如图3-21所示。

ggplot(ce, aes(x=Date, y=percent_weight, fill=Cultivar)) +geom_bar(stat="identity", colour="black") +guides(fill=guide_legend(reverse=TRUE)) +scale_fill_brewer(palette="Pastel1")

参见
更多关于分组对数据进行变换的内容可参见15.16节。

《R数据可视化手册》——3.8 绘制百分比堆积条形图相关推荐

  1. python 条形图_Python数据可视化:基于matplotlib绘制「堆积条形图」

    简介 堆积条形图作为条形图的一种,能够显示单个项目与整体之间的关系.不仅可以直观的看出每个系列的值,还能够反映出系列的总和,尤其是当需要看某一项目的总和以及其组成各系列值的比重时,最适合使用堆积条形图 ...

  2. python簇状柱形图_《R数据可视化手册》一3.2 绘制簇状条形图

    本节书摘来自异步社区<R数据可视化手册>一书中的第3章,第3.2节,作者 [美]Winston Chang,更多章节内容可以访问云栖社区"异步社区"公众号查看 3.2 ...

  3. R数据可视化手册pdf

    下载地址:网盘下载 内容简介  · · · · · · R具有强大的统计计算功能和便捷的数据可视化系统.<R数据可视化手册>重点讲解R的绘图系统,指导读者通过绘图系统实现数据可视化. 书中 ...

  4. 《R数据可视化手册》一1.4 从Excel文件中加载数据

    本节书摘来自异步社区<R数据可视化手册>一书中的第1章,第1.4节,作者 [美]Winston Chang,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.4 ...

  5. 数据可视化--绘制百分比堆积柱状图、簇形柱状图、并列子图

    一.绘制簇形柱状图 '''列索引"month"会被自动设置为x轴的标题.用于指定y轴的列索引们会自动生成对应的图例,以及x轴刻度会自动旋转90度'''data.plot.bar(& ...

  6. plotnine数据可视化手册

    介绍 R语言数据可视化的强大之处在于ggplot2,而plotnine相当于是python版的ggplot2,语法与R语言的ggplot2基本一致,无论是从语法简洁性.作图灵活性.美观度等方面,相对于 ...

  7. Python数据可视化(三)绘制统计图形大全

    3.1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法. 代码: import matplotlib as mpl import matplotlib ...

  8. 高级转录组分析和R数据可视化第11期(报名线上课还可免费参加线下课2020.6)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  9. 高级转录组分析和R数据可视化第11期(课程推迟,可先报名,时间另行告知)

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

  10. 高级转录组分析和R数据可视化(2020.2,课程推迟,可先报名,时间另行告知)

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

最新文章

  1. python file_python3之File文件方法
  2. netty4.0.x源码分析—bootstrap
  3. 数字化转型生态的三个层级(平台 场景 工具/技术)
  4. python odoo_odoo开发学习 -- Python2 or Python3 ?
  5. python 银行业务系统程序编程写_python多线程实现代码(模拟银行服务操作流程)
  6. 精讲23种设计模式-基于观察者模式~设计异步多渠道群发框架
  7. Qt奇淫技巧-使用QSharedMemory方式实现数据跨界面传输
  8. django调用python脚本返回_Django使用HttpResponse返回图片并显示的方法
  9. java Beanutils.copyProperties( )用法
  10. matlab 算法转 c语言,matlab
  11. signature=70706aa92e6532c935fb1dce5adc16b3,Thunder signatures
  12. 揭开阿里P2P面纱:大数据是泡泡
  13. SQL最全基础教程(保证你看了绝对点赞收藏)
  14. 计算机软考论文网络真题,软考历年真题在线测试系统测试与开发
  15. 7个Python实战项目(附源码),拿走就用
  16. python foo函数_python——函数
  17. Unterminated regular expression 和正则表达式
  18. 代码查重 EOJ Monthly 2018.4
  19. blog10 提取候选词的输入文本
  20. poi-tl生成word文档,java生成word文档

热门文章

  1. Matplotlib库使用总结
  2. bash给脚本加进度条_shell脚本进度条。
  3. 分布式检测与数据融合:贝叶斯检测理论
  4. 用反卷积(Deconvnet)可视化和理解卷积网络
  5. 【Kernel Method】Kernel Method核方法介绍
  6. 数据结构之--series,DataFrame.use python and pandas for data mining
  7. 利用 python 批量修改文件名
  8. Kubesploit:针对容器化环境的跨平台后渗透利用工具
  9. 2020-8-5 Codeforces摸鱼报告
  10. c语言编写面条排序算法,腾讯PCG事业部腾讯视频面经