(一)柱状图-应用在定性数据的可视化场景或者离散型数据,条形图和柱状图相似,只不过是函数barh

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
plt.bar(x, y, align="center", color="b", tick_label = ["A", "C", "B", "F", "D"], alpha=.6)
'''
x---->柱状图中的柱体标签值
y---->柱状图的柱体高度
align------>柱体对齐方式
tick_label------>刻度标签值
alpha--------->柱体的透明度
'''
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.grid(True, axis="y", ls=":", color="r", alpha=.3)
plt.show()

(二)堆积图

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
y1 = [2, 5, 6, 9, 20]
plt.bar(x, y, align="center", color="#66c2a5", tick_label = ["A", "B", "C", "D", "E"], label="班级A")
plt.bar(x, y1, align="center",bottom=y, color="#8da0cb", label="班级B")
'''
x---->柱状图中的柱体标签值
y---->柱状图的柱体高度
align------>柱体对齐方式
tick_label------>刻度标签值
bottom--------->底部是什么
'''
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.legend()
plt.show()

(三)分块图--------多数据的分布差异

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False x = np.arange(5)
y = [6, 10, 4, 5, 1]
y1 = [2, 6, 3, 8, 5] bar_width = 0.35
tick_label = ["A", "B", "C", "D", "E"] plt.bar(x, y, bar_width, align="center", color="c", label="班级A", alpha = .6)
plt.bar(x+bar_width, y1, bar_width, align="center", color="b", label="班级A", alpha=.5)
'''
注意起始位置的关系
bar_width------->柱状图宽度
'''
plt.xlabel("测试难度")
plt.ylabel("试卷份数") plt.xticks(x+bar_width/2, tick_label)
plt.legend()
plt.show()

(四)函数stackplot()----------堆积折线图,即将多个折线放在同一坐标,互相堆积但不会覆盖

import matplotlib.pyplot as plt
import numpy as np x = np.arange(1, 6, 1)
y = [0, 4, 3, 5, 6]
y1 = [1, 3, 4, 2, 7]
y2 = [3, 4, 1, 6, 5]
labels = ["BluePlanet", "BrownPlanet", "GreenPlanet"]
colors = ["#8da0cb", "#fc8d62", "66c2a5"]
plt.stackplot(x, y, y1, y2, labels=labels, colors=colors)
plt.legend(loc = "upper left")
plt.show()

(五)函数broken_barh()-------绘制间断条形图,在条形图的基础上绘制而成的,可视化定性数据的相同指标在时间维度上的指标值变化

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"] = ["LiSu"]
mpl.rcParams["axes.unicode_minus"] = False
plt.broken_barh([(30, 100), (180, 50), (260, 70)], (20, 8), facecolors="#1f78b4")
plt.broken_barh([(60, 90), (190, 20), (230, 30), (280, 60)], (10, 8), facecolors=("#7fc97f", "#beaed4", "#fdc086", "#ffff99"))
'''
(30, 100)------->以30为起点,移动100个单位
(20, 8)--------->Y轴以20为起点,移动8单位
facecolor--------->指柱体的颜色
'''
plt.xlim(0, 360)
plt.ylim(5, 35)
plt.xlabel("演出时间") plt.xticks(np.arange(0, 361, 60))
plt.yticks([15, 25], ["歌剧院A", "歌剧院B"])
#显示tick的位置
plt.grid(ls = "-", lw = 1, color = "r")
#网格线
plt.title("不同地区的歌剧院的演出时间比较") plt.show()

(六)函数step()----------绘制阶梯图,使用在时间序列数据的可视化任务中

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(1, 10, 10)
y = np.sin(x)
#where------>pre--->左开右闭区间,post---->左闭右开区间
plt.step(x, y, color="#8dd3c7", where="pre", lw = 2) plt.xlim(0, 11)
plt.xticks(np.arange(1, 11, 1))
plt.ylim(-1.2, 1.2)
plt.show()

(七)函数hist()---------直方图,定量数据或者连续数据的可视化展示

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"] = ["LiSu"]
mpl.rcParams["axes.unicode_minus"] = False
scoresT = np.random.randint(0, 100, 100)
x = scoresT bins = range(0, 101, 10) plt.hist(x, bins=bins, color="#377eb8", histtype="bar", rwidth=1.0)
'''
bins------->用于确定柱体的个数或者柱体边缘范围
histtype----->柱体类型
''' plt.xlabel("测试成绩")
plt.ylabel("学生人数")
plt.show()

(八)堆积直方图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"] = ["LiSu"]
mpl.rcParams["axes.unicode_minus"] = False
scoresT1 = np.random.randint(0, 100, 100)
scoresT2 = np.random.randint(0, 100, 100)
x = [scoresT1, scoresT2]
colors = ["#8dd3c7", "#bebada"]
labels = ["班级A", "班级B"]
bins = range(0, 101, 10) plt.hist(x, bins=bins, color=colors, histtype="bar", rwidth=1.0, stacked=True, label=labels)
# stacked决定着是否堆积,True为堆积,False不堆积
plt.xlabel("测试成绩")
plt.ylabel("学生人数") plt.title("不同班级的测试成绩直方图")
plt.legend(loc = "upper left")
plt.show()

(九)直方图的不同形状-----------改变hist的histtype参数

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"] = ["LiSu"]
mpl.rcParams["axes.unicode_minus"] = False
scoresT1 = np.random.randint(0, 100, 100)
scoresT2 = np.random.randint(0, 100, 100)
x = [scoresT1, scoresT2]
colors = ["#8dd3c7", "#bebada"]
labels = ["班级A", "班级B"]
bins = range(0, 101, 10) plt.hist(x, bins=bins, color=colors, histtype="stepfilled", rwidth=1.0, stacked=True, label=labels)
# stacked决定着是否堆积,True为堆积,False不堆积
plt.xlabel("测试成绩")
plt.ylabel("学生人数") plt.title("不同班级的测试成绩直方图")
plt.legend(loc = "upper left")
plt.show()

matplotlib学习日记(四)-绘制直方统计图形的更多相关文章

  1. matplotlib学习日记(五)-各种饼状图的绘制

    (一)分裂式饼状图 import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams[& ...

  2. matplotlib学习日记(一)------图表组成元素

      1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...

  3. matplotlib学习日记(十)-划分画布的主要函数

    (1)函数subplot()绘制网格区域中的几何形状相同的子区布局 import matplotlib.pyplot as plt import numpy as np '''函数subplot的介绍 ...

  4. matplotlib学习日记(十一)---坐标轴高阶应用

    (一)设置坐标轴的位置和展示形式 (1)向画布中任意位置添加任意数量的坐标轴 ''' 通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法, 与subplot,subplots ...

  5. matplotlib学习日记(三)------简单统计图

    (一)函数bar()---------绘制柱状图 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[" ...

  6. matplotlib学习记录 四

    # 绘制3月每天最高温和10月每天最高温散点图 from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.rcParams['font. ...

  7. Python学习日记(四) 集合和元祖

    元祖的特性:是一个只读列表.可以循环.可以切片,修改数据遵循'儿子'不能改但'孙子'可能可以改. iterable:可迭代对象(元祖.列表.字串.集合) 元祖宣告方式: tu = (1,2,3,['a ...

  8. matplotlib学习日记(十)-共享绘图区域的坐标轴

    (1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ...

  9. matplotlib学习日记(九)-图形样式

    (一)刻度线定位器和刻度格式器的使用方法 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker impor ...

随机推荐

  1. C语言讲义——注释

    注释 什么是注释?  --注释写在代码中的文字,不参与代码编译,不影响运行结果. 为什么要注释?--让代码可读性更强. C语言有两种注释: 单行注释 // 多行注释 /* */ 多行注释可以只有一行, ...

  2. go特性-数组与切片

    数组: 复制传递(不要按照c/c++的方式去理解,c/c++中数组是引用传递),定长 切片: 引用传递,底层实现是3个字段 array(数组) + len(长度) +cap(容量) type slic ...

  3. redis 做分布式锁

    ok 我们从最基础的一步步来 加锁: 1.setNx没有expire,拿锁线程挂掉后,死锁 2.setNx然后exipre分两步做,setNx后redis宕机,或者线程挂掉,死锁 3.SETNX re ...

  4. 我与oracle的爱恨情仇(第一章)

    关于配置 问题一 可能是虚拟机桥接问题 问题解决的链接:[如何更改虚拟机桥接](https://jingyan.baidu.com/article/9113f81b7cfbd22b3214c790.h ...

  5. 基于CefSharp开发(二)自定义浏览器窗体

    上一篇 https://www.cnblogs.com/mchao/p/13914726.html 简单了解了CefSharp引用配置但页面光秃秃的,这一篇着手开发简单浏览器窗体 一.Edge浏览器窗 ...

  6. 基于spring@aspect注解的aop实现

    第一步:编写切面类 package com.dascom.hawk.app.web.tool; import org.aspectj.lang.JoinPoint; import org.aspect ...

  7. Go语言基础--1.1 变量的声明

    1.标准格式: var name type     (var 关键字 name 变量名 type 类型)   命名规则:建议使用驼峰命名法 例如:var userName string    var ...

  8. sitespeedio前端性能测试工具介绍

    很久没有写博客了,今天给大家介绍一款比较好用的前端性能测试工具. sitespeedio简介: sitespeed.io是Jonathan Lee发布的一款可监视和衡量网站前端性能的开源工具. 1.开 ...

  9. 算法——K 个一组翻转链表

    给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: 给你这个 ...

  10. 用Ubuntu和树莓派系统部署kubernetes集群后的一些心得

    方案 环境 操作系统:Ubuntu 16.04 & Raspbian GNU/Linux 9(Stretch Desktop) kubernetes :1.15.3 flannel:0.11. ...