matplotlib学习日记(四)-绘制直方统计图形
(一)柱状图-应用在定性数据的可视化场景或者离散型数据,条形图和柱状图相似,只不过是函数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学习日记(四)-绘制直方统计图形的更多相关文章
- matplotlib学习日记(五)-各种饼状图的绘制
(一)分裂式饼状图 import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams[& ...
- matplotlib学习日记(一)------图表组成元素
1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...
- matplotlib学习日记(十)-划分画布的主要函数
(1)函数subplot()绘制网格区域中的几何形状相同的子区布局 import matplotlib.pyplot as plt import numpy as np '''函数subplot的介绍 ...
- matplotlib学习日记(十一)---坐标轴高阶应用
(一)设置坐标轴的位置和展示形式 (1)向画布中任意位置添加任意数量的坐标轴 ''' 通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法, 与subplot,subplots ...
- matplotlib学习日记(三)------简单统计图
(一)函数bar()---------绘制柱状图 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[" ...
- matplotlib学习记录 四
# 绘制3月每天最高温和10月每天最高温散点图 from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.rcParams['font. ...
- Python学习日记(四) 集合和元祖
元祖的特性:是一个只读列表.可以循环.可以切片,修改数据遵循'儿子'不能改但'孙子'可能可以改. iterable:可迭代对象(元祖.列表.字串.集合) 元祖宣告方式: tu = (1,2,3,['a ...
- matplotlib学习日记(十)-共享绘图区域的坐标轴
(1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ...
- matplotlib学习日记(九)-图形样式
(一)刻度线定位器和刻度格式器的使用方法 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker impor ...
随机推荐
- Grakn Forces 2020 ABCDE题解
看到老外评论区中说,这场的难度估计是\(div.1\)和\(div.1.5\)的合并 A. Circle Coloring #构造 题目链接 题意 给定三个长度为\(n\)数组\(a,b,c\),要你 ...
- 2016湖南省赛 A 2016 题解(同余)
题目链接 题目大意 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1<=a<=n 1<=b<=m a*b%2016=0 题目思路 我本来以为是容斥 ...
- C语言讲义——数组和指针
数组名表示的是这个数组的首地址.即如果有int a[10],则a 相当于&a[0]. #include <stdio.h> main() { int a[5]= {1,3,5,7, ...
- JDk8的新特性-流和内部iteration
JDK8到今天已经出了好几年了 但是在公司能用到新特性的地方还是很少, 去年的时候当时项目老大要求我们用最新的写法来写Java 刚开始看到用stream写出来的代码一脸懵逼,内心就在想 这是Jav ...
- for循环与while循环
1.两中循环的语法结构 for循环结构: for(表达式1;表达式2;表达式3) { 执行语句; } while循环结构: while(表达式1) { 执行语句; } 2.两者区别: 应用场景:由于f ...
- WEB组态可视化软件(B/S)
WEB组态可视化软件 目录 WEB组态可视化软件 1 B/S组态软件 2 组态概念 3 组态产品呈现 4 功能特点 5 组态软件应用场景 6 经典的案例 6.1 某通信基站的组态可视化 7 具体实现 ...
- CoProcessFunction实战三部曲之三:定时器和侧输出
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- PyQt(Python+Qt)学习随笔:gridLayout的layoutRowStretch和layoutColumnStretch属性
Qt Designer中网格布局中,layoutRowStretch和layoutColumnStretch两个属性分别设置网格布局中行之间和列之间的拉伸因子,如图: 但是QGridLayout并没有 ...
- Fiddle重定向请求
以当当网和淘宝网为例: 1.打开浏览器,在地址栏中输入www.dangdang.com,进入当当主页. 2.在规则编辑器中设置规则,将dangdang重定向至taobao,并打开规则. 3.再次刷新当 ...
- Leetcode学习笔记(3)
题目1 ID88 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量 ...