概述

matplotlib没有提供原生的象形图接口。通过第三方库pywaffle可以生成简易象形图。

pywaffle是一个用于绘制华夫饼图的第三方库,支持使用Font Awesome作为自定义图形。
文档见https://pywaffle.readthedocs.io/en/latest/

安装

$ pip install pywaffle

简易应用:华夫饼图

pywaffle的应用非常简单。首先将Waffle类传递给matplotlib.pyplot.figure函数的FigureClass参数,然后通过设置matplotlib.pyplot.figure函数的参数即可完成华夫饼图的定制。

import matplotlib.pyplot as plt
from pywaffle import Waffle
plt.figure(FigureClass=Waffle,rows=5,columns=10,  # Either rows or columns could be omittedvalues=[30, 16, 4]
)
plt.show()

实现象形图

由于华夫饼图和象形图之间是有一定差别的,需要设置一些关键参数。

  • icons:设置各类别使用的图标。取值为Font Awesome的图标名称,名称定义见pywaffle.fontawesome_mapping.icons。类型为字符串或字符串列表。
  • columns:设置图标的最大列数,需要同时设置vertical=True
  • starting_location:设置类别的起始位置。 starting_location='NW'即从左上角开始排列。
  • block_arranging_style = 'new-line':设置每个类别新起一行。
  • icon_legend:设置图标图例。

import numpy as np
import matplotlib.pyplot as plt
from pywaffle import Waffle# 设置中文字体
plt.rcParams["font.family"] = "simhei"
# 构造数据
data = np.array([150, 115, 100])
# 构造图例标签
labels = ["晴", "小雨", "多云"]
# 构造最大列数
columns = 15
plt.figure(FigureClass=Waffle,# 构造列数columns=columns,# 设置类别图标icons=["sun", "cloud-rain", "cloud"],# 设置类别颜色colors=["#FFA500", "#4384FF", "#C0C0C0"],# 垂直排列分类vertical=True,# 从左上角开始排列starting_location="NW",# 设置每个分类另起一行block_arranging_style="new-line",# 设置图标间隙interval_ratio_x=1.5,interval_ratio_y=1.5,# 值缩放处理values=data * columns / data.max(),# 设置标题title={"label": "天气指数","loc": "left","fontdict": {"fontsize": 20,},"pad": 20,},# 设置图例标签labels=[f"{k} ({v}天)" for k, v in zip(labels, data)],# 设置图例位置、排列方式legend={"loc": "lower left","bbox_to_anchor": (0, -0.4),"ncol": len(data),"framealpha": 0,"fontsize": 16,},# 设置图标图例icon_legend=True,# 设置图像大小figsize=(13, 5),
)plt.show()

使用matplotlib和pywaffle绘制象形图(PictorialBar)相关推荐

  1. python使用matplotlib可视化subplots绘制子图、自定义几行几列子图,如果M行N列,那么最终包含M*N个子图、在指定的子图中添加可视化结果

    python使用matplotlib可视化subplots绘制子图.自定义几行几列子图,如果M行N列,那么最终包含M*N个子图.在指定的子图中添加可视化结果 目录

  2. Python dataframe绘制饼图_【python可视化】:matplotlib:常见图表绘制——面积图、填图、饼图...

    •本文字数:约620字•阅读时长:约2分钟•难度:1颗星 斑点鱼将Matplotlib分为五部分: 图表窗口设置.图表基本元素及图表输出.图表样式参数.子图创建.常见图表绘制 本文讲第五部分:matp ...

  3. Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)

    Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...

  4. Py之Matplotlib:python包之Matplotlib库图表绘制经验总结(中英文字体修改、横坐标文字进行横/纵向显示、控制坐标轴范围等)之详细攻略

    Py之Matplotlib:python包之Matplotlib库图表绘制经验总结(中英文字体修改.横坐标文字进行横/纵向显示.控制坐标轴范围等)之详细攻略 目录 1.Matplotlib库图表绘制包 ...

  5. Py之matplotlib:python包之matplotlib库图表绘制包的简介、安装、使用方法(matplotlib颜色大全)详细攻略

    Py之matplotlib:python包之matplotlib库图表绘制包的简介.安装.使用方法(matplotlib颜色大全)详细攻略 目录 matplotlib简介 matplotlib安装 m ...

  6. Python使用matplotlib设置pandas绘制的饼状图扇形标签

    2021年全国高校Python课程高级研修班(线上) 中国大学MOOC"Python程序设计基础"第4次开课 推荐图书: <Python程序设计(第3版)>,(ISBN ...

  7. matplotlib 常用图形绘制与官方文档

    matplotlib 常用图形绘制与官方文档 matplotlib.org Python库matplotlib 图形绘制 官方教程目录 matplotlib.pyplot matplotlib.pyp ...

  8. 【Matplotlib】matplotlib.animation.FuncAnimation绘制动态图、交互式绘图汇总(附官方文档)

    文章目录 零.文中用到的相关知识: 一.以sin举例,motplotlib绘制动图 1.绘制sin函数 2.动态画出sin函数曲线 3.点在曲线上运动 4.点,坐标运动 二.单摆例子 1.scipy中 ...

  9. 08【matplotlib】06matplotlib绘制多次图形和不同图形的差异介绍和总结

    动手 题目 假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势 a = [1,0 ...

最新文章

  1. 利用三个点(trsf)来实现各种规则图形的实现
  2. Mono项目宣布将整合F#
  3. html dom对象简写,js参考手册-html dom对象
  4. Failed to start OpenSSH server daemon
  5. 【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(上)
  6. Android模拟器Genymotion使用详解
  7. Python3 函数(方法)
  8. 如何查找 MySQL配置文件 my.ini (my.conf)的位置(案例篇)
  9. keepalived详解和实战
  10. html js 跳出框架,现在的web框架为什么把html和js又结合在一起了?
  11. 小额现金贷用户群体分析及风控体系搭建
  12. 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
  13. 计算机组成与系统结构习题
  14. Android 四大开发组件
  15. 杰奇python采集器_linux下能完美运行的杰奇采集器ckp
  16. 15.4.1 使用CREATE OR REPLACE VIEW语句修改视图结构
  17. Centos7.6安装Bugzilla5.0.4
  18. java 真少林倚天屠龙夺艳记,2019年9月13日資訊重點:月夜吟詠詩意長安十九屆中央第四輪巡視全部進駐...
  19. 解决显卡驱动错误43
  20. h5页面定时跳转+读秒

热门文章

  1. 腾讯万亿级 Elasticsearch
  2. JS 对象直接量方法创建对象
  3. 发送给客户的文件,怕泄漏怎么办?
  4. 关于MobaXterm在4K屏幕下SSH显示软件分辨率不太正确的问题
  5. ns3--TapBridge, TapNetDevice,FdNetDevice等
  6. 阿里云是干什么用的?
  7. 是不是程序员总会遇到一个瓶颈期,觉得自己没有进步了,该怎么解决?
  8. Yii Framework 开发教程(37) Zii组件-Dialog示例
  9. AMBA总线-结合axi-vip对axi4协议的理解1
  10. 求职秘籍-如何准备面试?