Matplotlib绘制折线图、散点图、柱状图、直方图、饼图代码

news2024/11/26 2:53:47

一、折线图

以折线的上升或下降来表示统计数量的增减变化的统计图

  • 特点:能够显示数据的变化趋势,反映事物的变化情况(变化)
  • 函数:plt.plot(x, y)
import matplotlib.pyplot as plt
import random

from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]   # 设置显示中文字体
mpl.rcParams["axes.unicode_minus"] = False   # 设置正常显示符号

# 数据准备
x = range(24)   
y = [random.uniform(13, 20) for i in x]   # random.uniform():随机生成13-20范围内的浮点数

plt.figure(figsize=(10, 5), dpi=80)   # 创建画布
plt.plot(x, y, color='y', linestyle='-',label='樟树')   # 绘制折线图

x_ticks_label = ["{}:00".format(i) for i in x]   # 构建x轴刻度标签
y_ticks = range(40)   # 构建y轴刻度

# 修改x,y轴坐标的刻度显示
plt.xticks(x[::2], x_ticks_label[::2])
plt.yticks(y_ticks[10:20:1])

plt.grid(True, linestyle='-', alpha=0.9)   # 添加网格
plt.legend(loc=0)   # 显示图例

# 描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("24小时内温度变化图", fontsize=18)

plt.savefig("./plot.jpg")  # 保存至指定位置
plt.show()  # 显示图像

结果如下

二、散点图

用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式

  • 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
  • 函数:plt.scatter(x, y)
import matplotlib.pyplot as plt
import random

# 数据准备
x = range(100)   
y = [random.uniform(13, 20) for i in x]   # random.uniform():随机生成13-20范围内的浮点数

plt.figure(figsize=(10, 5), dpi=80)   # 创建画布
plt.scatter(x, y, color='r', linestyle='-',label='樟树')   # 绘制折线图

x_ticks_label = ["{}天".format(i) for i in x]   # 构建x轴刻度标签
y_ticks = range(25)   # 构建y轴刻度

# 修改x,y轴坐标的刻度显示
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[10:22:2])

plt.grid(True, linestyle='-', alpha=0.9)   # 添加网格
plt.legend(loc=0)   # 显示图例

# 描述信息
plt.xlabel("时间/天")
plt.ylabel("温度")
plt.title("24小时内温度变化图", fontsize=18)

plt.savefig("./scatter.jpg")  # 保存至指定位置
plt.show()  # 显示图像

 结果如下

三、柱状图

排列在工作表的列或行中的数据可以绘制到柱状图中

  • 特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别(统计/对比)
  • 函数:plt.bar(x, width, align='center', **kwargs)
    • x:需要传递的数据
    • width:柱状图的宽度
    • align:每个柱状图的位置对齐方式
    • **kwargs
      • color:选择柱状图的颜色
import matplotlib.pyplot as plt
import random

# 数据准备
x = range(0,10)   
y = [random.randint(35, 45) for i in x]   # random.uniform():随机生成13-20范围内的浮点数

plt.figure(figsize=(10, 5), dpi=80)   # 创建画布
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g'])   # 绘制折线图

x_ticks_label = ["21{}班".format(i) for i in x]   # 构建x轴刻度标签
y_ticks = range(55)   # 构建y轴刻度

# 修改x,y轴坐标的刻度显示
plt.xticks(x[::1], x_ticks_label[::1])
plt.yticks(y_ticks[0:55:5])

plt.grid(True, linestyle=':', alpha=0.3)   # 添加网格

# 描述信息
plt.xlabel("班级")
plt.ylabel("人数")
plt.title("2021级各班人数柱状图", fontsize=18)

plt.savefig("./bar.jpg")  # 保存至指定位置
plt.show()  # 显示图像

结果如下

四、直方图

由一系列高度不等的纵向条纹或线段表示数据分布的情况, 一般用横轴表示数据范围,纵轴表示分布情况

  • 特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)
  • 函数:matplotlib.pyplot.hist(x, bins=None)
    • x:需要传递的数据
    • bins:组距
import matplotlib.pyplot as plt
import numpy as np

plt.style.use('_mpl-gallery')

# 生成数据
np.random.seed(1)   # 随机数种子,用于生成随机数
x = 4 + np.random.normal(0, 1.5, 200) 
# numpy.random.normal(loc=0.0, scale=1.0, size=None)  为一个正态分布
# loc(float):均值,对应着这个分布的中心。loc=0说明这一个以y轴为对称轴的正态分布
# scale(float):标准差,对应分布的宽度,scale越大越矮胖,scale越小,越瘦高
# size(int 或者整数元组):输出的值赋在shape里,默认为None

# plot:
fig, ax = plt.subplots()

ax.hist(x, bins=8, linewidth=0.5, edgecolor="white")

ax.set(xlim=(0, 10), xticks=np.arange(1, 10),
       ylim=(0, 56), yticks=np.linspace(0, 56, 9)) # 9个,包含0,间隔为7,7×8=56,即[0,7,14,21,28,35,42,49,56]
# np.arange():返回一个有终点和起点的固定步长的排列
# np.linspace(start, stop, num):用来创建等差数列,num为个数

plt.show()

结果如下

五、饼图

用于表示不同分类的占比情况,通过弧度大小来对比各种分类

  • 特点:分类数据的占比情况(占比)
  • plt.pie(x, labels=,autopct=,colors)
    • x:数量,自动算百分比
    • labels:每部分名称
    • autopct:占比显示指定%1.2f%%
    • colors:每部分颜色
    • startangle:开始绘制的角度
    • shadow=True:阴影
import matplotlib.pyplot as plt

# 饼图,其中切片将按逆时针顺序排序和绘制:
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 20]
explode = (0, 0.1, 0, 0)  # 仅分解第二个切片,间距为0.1

fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.3f%%',colors=['r','y','c','g'], 
        shadow=True, startangle=90)
ax1.axis('equal')  # 等长宽比确保饼被画成圆

plt.show()

 结果如下

Matplotlib官网:https://matplotlib.org/stable/

学习导航:http://xqnav.top/ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day31 文件上传js验证mimeuser.ini语言特性

前言 #知识点: 1、文件上传-前端验证 2、文件上传-黑白名单 3、文件上传-user.ini妙用 4、文件上传-PHP语言特性 #详细点: 1、检测层面:前端,后端等 2、检测内容:文件头,完整性,二次渲染…

基于MATLABsimulink的《电路原理》课程仿真实验平台开发

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2设计内容 1 1.3设计思想 2 第二章 MATLAB简介 3 2.1 MATLAB程序设计 3 2.2 Simulink仿真 4 2.2.1 Simulink 启动 4 2.2.2 Simulink 模块库及模块操作 4 2.2.3 仿真参数设置 6 2.3图形用户界面(GUI&…

基于STM32的温控风扇

本设计是基于STM32的温控风扇,主要实现以下功能: 温度控制风速,四个挡位,停止、低速、中速、高速 按键可切换模式,可手动切换挡位,四个挡位,停止、低速、中速、高速 按键设置温度值&#xff0c…

网络刷卡器开发,刷新移动物联新生活

在物联网应用需求和身份校验普及的影响下,沐渥自主研发生产了一款基于网络协议传输的读卡设备——网络刷卡器,这是一款体积小巧,方便携带,即插即用,无需安装驱动,采用USB通讯,即刻响应对接客户的…

Linux系统漏洞本地提权

目录 一、实验项目名称 二、实验目的 三、实验内容 四、实验环境 五、实验步骤 六、实验结果 七、实验总结 一、实验项目名称 Linux系统漏洞本地提权及跳板设置实验 二、实验目的 1.msf工具的使用; 2.“脏牛”漏洞CVE-2016-5195漏洞利用方法。 三、实验…

MCE | 铁死亡——调节性细胞死亡

多细胞生物中,调节性细胞死亡过程 (RCD) 是细胞维持组织形态和功能必不可少的稳态机制。此前研究较多的调节性细胞死亡包括三大类:细胞凋亡、自噬和坏死。 “铁死亡”这一概念最早在 2012 年由 Dr. Brent R Stockwell 提出,它是一种铁离子依赖…

ORM概念

ORM概念 ORM是Object Relational Mapping 对象关系映射。简单来说,就是把数据库表和实体类及实体类的属性对应起来,让开发者操作实体类就实现操作数据库表。 ORM(Object Relation Mapping)对象关系映射 思想:将关系数据库中表中的记录映射为对…

百货集团数字化转型方案

一、案例简述 后疫情时代对零售业,特别是百货和购物中心造成了巨大冲击,驱使实体零售业拥抱数字化转型。从总体上看,实体零售企业对于数字化转型的必要性已有充分的认知及一定的实践操作,但数字化仍处于起步阶段,线上…

”消费全返“是割韭菜,非也,广告电商引领全新“全返”模式

谈及消费全返,大家可能会避而不谈,因为有“云联惠”这个实实在在的案例发生,各大企业都怕进局子,现在都不弄消费全返了。说到“云联惠”,为什么它能在短时间内火得这么快,因为他们以“全返”为阙头&#xf…

驱动开发2

P 19 驱动设计的思想:面向对象/分层/分离 用结构体来表示某个对象 分离思想 将某个有很多类似操作的写在一起,这样我们根据参数就可以替换不同的步骤了 1、上下分层 将设计硬件的比如 初始化gpio、设置GPIO写成board.c 同用的就写在drv.c里面 2、左右分…

python数据分析与可视化

//注:绿色为正确答案,红色为错误答案,粉色为本人做错之后,系统给出的答案,可能有些题本人未标记,但是是可以区分的,题目中存在重复题目,下面有三张图的代码建议交代码块,…

中小企业知识管理难题怎么做?天翎与群晖携手给出最优解

编者按:在知识经济越来越重要的今天,做好知识管理对企业来说至关重要,但是中小企业的知识管理之路,比起大企业更加困难,该如何应对呢?本文分析了现代中小企业面临的知识管理困境,并进一步提出天…

Spring:AOP通知获取数据(13)

AOP通知获取数据AOP通知获取参数非环绕通知获取参数方式环绕通知获取参数方式AOP通知获取返回值环绕通知获取返回值返回后通知获取返回值AOP通知获取数据的案例AOP通知获取参数 非环绕通知获取参数方式 在方法上添加JoinPoint,通过JoinPoint来获取参数, 这里只使用…

[附源码]Python计算机毕业设计出版社样书申请管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

源自双11混部实战,Koordinator 如何保障应用服务质量?

作者:张佐玮、韩柔刚 Koordinator 团队 在洪峰流量下,如何确保应用的服务质量不受影响的同时,最大限度提升资源利用率,是考验混部技术成熟度的关键。本文将展开介绍Koordinator在资源隔离,单机QoS保障,以及…

4、SySeVR复现——Generating slices

目录 1、准备阶段 2、生成实验数据的CFG图 3、生成实验数据的PDG图 4、生成实验数据的调用图 5、获取四种类型的SyVCs 6、提取SeVCs 7、获取漏洞的代码行号 8、给切片打标签 9、将标签写入切片 1、准备阶段 实验数据我只用这些: (1)…

Spring源码深度解析:六、ConfigurationClassPostProcessor

一、前言 文章目录:Spring源码分析:文章目录 ConfigurationClassPostProcessor是非常重要的一个 后处理器。 ConfigurationClassPostProcessor完成了 配置类的解析和保存以及Component注解、Import等注解的解析工作 。将所有需要注入的bean解析成BeanD…

【学习日志】2022.11.18 Technical Artist Training Tutorial----Unlit Shader Of Unity

着色器 - Unity 手册 (unity3d.com)https://docs.unity3d.com/cn/current/Manual/Shaders.html 常用板块(Properties) _MainTex("MainTex",2D)"black"{} _Float("Float",Float)0.0 _Range("Range",Range(0.0,1…

【测试沉思录】14. 性能测试中的系统资源分析之一:CPU

作者:马海琴 编辑:毕小烦 在日常的性能测试中,我们除了关注应用本身的性能,比如服务的响应时间、TPS 等,也需要关注服务器本身的资源使用情况,比如 CPU、内存、磁盘、网络等。当然,不光要分析服…

Java中string、int、char之间互相转换

String转int (1)Integer.parseInt(String) 方法 支持“负号”! String str "123"; int num Integer.parseInt(str); 如果这个字符串中间有字母会报错! (2)Integer.valueOf(String) 方法 …