堆积图,在计算机视觉的论文中是相当常见而表现力极强的一种图示方法,其表现为:

固定高度的矩形中,根据某一些数值意义相同的不同变量根据其数值大小占据矩形中连续的高度;

其与饼图相相似,都可以很清晰地表示不同变量所占比重大小的不同;

而它又优于饼图,当我们把不同时间状态下的比较结果拼接起来后,就可以很清楚看到随着时间的演进或者进程的进行,这些变量的权重比例发生的变化和趋势!

效果如下——

注:图1是小编本人的实验结果;图2是摘自论文Switchable Normalization的图,。

(一)原理

如上图所示,堆积图的形成原理即是先在同一个位置画出不同高度的图,新的高度是基于之前的所有值的和,再增加自身的高度得到的;

最后的工作就是把他们按照顺序叠在一起就可以了。一般来说,matplotlib如果没有特殊说明(调用 plt.close())那么就会在原来图的基础上继续做图。

(二)代码实现

import matplotlib.pyplot as plt
import os
import numpy as npcol = ['yellow', 'lightskyblue', 'lightgreen', 'maroon', 'mediumseagreen', 'mediumvioletred', 'paleturquoise', 'pink', 'salmon', 'seagreen', 'orangered', 'olive', 'navy']
# 定义我们的颜色集合,没有特别说明的话,系统也会自己配置"""
假设我们要画一个 m 行 n 列的堆积图,我们需要
矩阵:M --[m,n]
Steps:1) 手动盖第一层plt.bar(np.range(n), M[0], label, color)参数含义:a. 规定我们这个图有几条柱子 --[0, 1, 2, ..., (n-1)]b. 作用于 M 的第一行 --[n,]c. 第一层的名字(字符串)d. 颜色(字符串)
"""
plt.bar(sr, M[0] / Div, label='layer_{}'.format(str(0)))"""
Steps:2) for 循环继续构建剩余的层plt.bar(np.range(n), M[0], bottom, label, color)参数含义:a. 规定我们这个图有几条柱子 --[0, 1, 2, ..., (n-1)]b. 作用于 M 的第一行 --[n,]c. 用之前的值求和作为这一层的基础 --[n,]d. 第一层的名字(字符串)e. 颜色(字符串)
"""
for i in range(1, M.shape[0]):plt.bar(np.range(n), M[i, :], bottom=np.sum(M[0:i, :], axis = 0), label='layer_{}'.format(str(i)), color=col[i])plt.legend()
plt.show()plt.savefig('sample.jpg')# 保存
plt.close()

如果有多组要保持高度不变的话,可以对每一列做归一化,即每一列的所有元素除以这一列所有元素的和。

Python使用matplotlib绘制堆积图相关推荐

  1. python话雷达图-python使用matplotlib绘制雷达图

    本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd impo ...

  2. python画雷达图-python使用matplotlib绘制雷达图

    本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd impo ...

  3. python画矩阵热图_如何用python的matplotlib绘制热图

    python使用matplotlib绘制热图 python常用的绘图库就是matplotlib,今天在给公司绘图时,偶然间发现matplotlib可以绘制热图,并且十分简洁,拿出来跟大家分享一下.(由 ...

  4. python画曲线图例-python使用matplotlib绘制折线图教程

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  5. 如何使用python画折线图-python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序 ...

  6. Python可视化 | Matplotlib绘制圆环图的两种方法!

    人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时支持多个统计数据.与标准饼图相比,环形图提供 ...

  7. 【Python】Matplotlib绘制折线图

    文章目录 1.Matplotlib画图简单实现 2.折线图 2.1绘制折线图 2.2设置线的格式 2.3设置折点 2.4.图片的保存和导出 2.5设置刻度 2.6显示中文 2.7实例:每分钟心脏跳动图 ...

  8. python 通过 matplotlib 绘制矢量图

    问题描述 当遇到这种情况:需要通过代码和数据进行图片的绘制的时候,可以考虑使用 OriginPro 进行绘制,并且在很多情况下,OriginPro 都更加合适绘图,导出矢量图也比较方便. 但是如果遇到 ...

  9. python导入数据画柱状图代码_在Linux下使用Python的matplotlib绘制数据图的教程

    如果你想要在Linxu中获得一个高效.自动化.高质量的科学画图的解决方案,应该考虑尝试下matplotlib库.Matplotlib是基于python的开源科学测绘包,基于python软件基金会许可证 ...

最新文章

  1. poj1741(树的点分治)
  2. arcgis andin使用python窗体_在ArcGIS?10中使用python
  3. python3创建定时任务
  4. 格式说明_法律文书:公司单位民事起诉状格式范本及说明,最高人民法院2016...
  5. 常用字符串处理函数汇总
  6. 使用npm失败解决方案
  7. Windows远程连接的用户名和密码怎么设置?
  8. python源_python更换国内源
  9. 系统设计=基于表面肌电信号的不同手势识别【MATLAB】
  10. nodejs、express下载和配置
  11. 计算机网络基础B试题及答案,计算机网络基础试题及答案2
  12. 利用SPSS做数据分析①(了解SPSS)
  13. python运行代码无反应_linux执行python命令后没有反应,不打印日志信息
  14. 2020ICPC昆明热身赛 C.Statues(前缀优化dp+滚动数组优化空间)
  15. 华为OD机试题:统计射击比赛成绩
  16. 刚写完的 基于微信的房产中介预约看房小程序 毕业设计毕设源码
  17. 【我的小工具】图片拼接工具
  18. android应用开发完全
  19. python学习第十二天
  20. python lasso做交叉验证法_标准方程法_岭回归_LASSO算法_弹性网

热门文章

  1. 昆仑通态McgsPro 使用MQTT最详细步骤,经验总结
  2. Mysql导致CPU飙高的问题
  3. 黑客软件编写基础知识锦囊
  4. C语言 全局变量和局部变量的大小限制
  5. 微信h5支付前端代码
  6. 2022双11/双十一天猫喵果总动员/京东穿行寻宝一键完成,自动任务脚本软件,分享源码学习
  7. C语言~宏操作大全(宏定义、内置宏、__FILE__、__LINE__、##用法)
  8. Java顺序与选择结构实验问题,初中物理说课稿模板2
  9. C++打卡20-【排序模板】快速排序
  10. Flask 生成pdf并下载