当前位置: 首页 > news >正文

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。

绘制折线图:

import matplotlib.pyplot as plt
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y=[61,72,66,79,80,88,85]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y)
plt.show()

效果图:

如果要在一张图上显示两个折线图,只需要调用两次plt.plot(),并且显示图例,在调用 plt.plot() 方法时传入 label 参数,接着调用 plt.legend() 方法显示图例,例如:

#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,130.94]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y1,label='能量值')
plt.plot(x,y2,label='money')
plt.legend()
plt.show()

效果图:

如果想自行选择图例位置的话可以通过 plt.legend() 方法的 loc 参数实现,loc 参数共有如下 11 种方式可供选择:

#靠上居中
plt.legend(loc='upper center')

绘制柱状图:

普通柱状图:

普通柱状图的画法很简单,调用 plt.bar() 方法即可。

  • 传入两个参数,第一个参数是 x 轴上刻度的标签序列(列表、元组、数组等),第二个参数则用于指定每个柱子的高度,也就是具体的数据。
  • plt.bar() 还有一些可选参数,常用的有 width 和 color,分别用于设置柱子的宽度(默认 0.8)和颜色。
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#设置图表的标题
plt.title("xback的一周")
plt.bar(x,y1,label='能量值',width=0.6,color='purple')
plt.legend()
plt.show()

效果图:

堆叠柱状图:
#时间
x=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,80]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']plt.bar(x,y1,label='能量值',width=0.6,color='purple')
plt.bar(x,y2,label='money',width=0.6,color='red')
plt.title("xback的一周")
plt.legend()
plt.show()

效果图:

分组柱状图:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(7)
width=0.3
#时间
day=['周一','周二','周三','周四','周五','周六','周日']
#能量值
y1=[61,72,66,79,80,88,85]
#money
y2=[11.5,18.5,58,16.5,50.13,12,80]
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.bar(x-width/2,y1,label='能量值',width=0.3,color='purple')
plt.bar(x+width/2,y2,label='money',width=0.3,color='red')
plt.title("xback的一周")
plt.xticks(x,day)
plt.legend()
plt.show()

效果图:

绘制饼图:

  • plt.pie() 方法每个参数的作用:第一个参数是绘图需要的数据;参数 labels 指定了数据对应的标签;参数 autopct 则给饼图自动添加百分比显示。
  • '%0.1f%%' 可以分为两部分,一部分是 %0.1f 表示保留一位小数,同理 %0.2f 表示保留两位小数。
  • 另一部分是 %%,其实它就表示输出一个 %,因为 % 还字符串格式化输出中有特殊的含义,所以想要输出 % 就得写成 %%。所以,'%0.1f%%' 的含义是保留一位小数的百分数,例如:53.3%。
#时间
day=['周一','周二','周三','周四','周五','周六','周日']
#能量值
happiness=[61,72,66,79,80,88,85]
#突出显示数据
explode=(0.1,0,0,0,0,0,0)
# 用来设置字体样式以正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.pie(happiness,explode=explode,autopct='%0.1f%%')
plt.title("xback的一周")
plt.show()

效果图:

绘制子图:

  • 在 matplotlib 中,我们可以调用 plt.subplot() 方法来添加子图。 plt.subplot() 方法的前两个参数分别是子图的行数和列数,第三个参数是子图的序号(从 1 开始)
  • 使用 set_title()来为每个子图设置单独的标题。需要注意的是,如果想要给带有子图的图表设置总的标题的话,不是使用 plt.title() 方法,而是通过 plt.suptitle() 方法来设置带有子图的图表标题。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    # 用来设置字体样式以正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号
x = np.arange(0, 2 * np.pi, 0.1)
plt.suptitle('三角函数可视化')
# 子图 1ax1 = plt.subplot(2, 2, 1)
ax1.set_title('sin函数')
y1 = np.sin(x)
ax1.plot(x, y1)# 子图 2ax2 = plt.subplot(2, 2, 2)
ax2.set_title('cos函数')
y2 = np.cos(x)
ax2.plot(x, y2)# 子图 3ax3 = plt.subplot(2, 1, 2)
ax3.set_title('tan函数')
y3 = np.tan(x)
ax3.plot(x, y3)plt.show()

效果图:

相关文章:

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。 绘制折线图: import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…...

mac npm install 很慢或报错

npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired 1、取消ssl验证: npm config set strict-ssl false 修改后一般就可以了,…...

100天精通Python(实用脚本篇)——第118天:基于selenium和ddddocr库实现反反爬策略之验证码识别

文章目录 专栏导读一、前言二、ddddocr库使用说明1. 介绍2. 算法步骤3. 安装4. 参数说明5. 纯数字验证码识别6. 纯英文验证码识别7. 英文数字验证码识别8. 带干扰的验证码识别 三、验证码识别登录代码实战1. 输入账号密码2. 下载验证码3. 识别验证码并登录 书籍推荐 专栏导读 …...

51单片机与ARM单片机的区别

51的MCU与ARM的MCU的区别 51单片机与ARM单片机区别主要体现在以下几个方面: 指令集架构(ISA): 51单片机:基于Intel 8051架构,采用的是CISC(复杂指令集计算机)设计,其指令…...

Android 10.0 mtk平台系统添加公共so库的配置方法

1.前言 在10.0的系统定制化开发中,由于 Android对应用应用的系统库限制越来越严格,上层应用包括(apk、jar包)不能直接引用系统的一些so库了。如果需要使用,只能使用,系统申明的公共库。 如果使用非系统申明的公共库,apk运行后调用该so库时,app会直接挂掉,或者系统开发…...

simulink平面五杆机构运动学仿真

1、内容简介 略 68-可以交流、咨询、答疑 2、内容说明 simulink平面五杆机构运动学仿真 [ 摘 要 ] 以 MATLAB 程序设计语言为平台 , 以平面可调五杆机构为主要研究对象 , 给定机构的尺寸参数 , 列出所 要分析机构的闭环矢量方程 , 使用 MATLAB 软件中 SIMULINK 仿真工…...

【Docker】APISIX Ingress Controller部署

APISIX Ingress Controller环境标准软件基于Bitnami apisix-ingress-controller:构建。当前版本为1.8.0 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://git…...

常见的十大网络安全攻击类型

常见的十大网络安全攻击类型 网络攻击是一种针对我们日常使用的计算机或信息系统的行为,其目的是篡改、破坏我们的数据,甚至直接窃取,或者利用我们的网络进行不法行为。你可能已经注意到,随着我们生活中越来越多的业务进行数字化&…...

接口幂等性问题和常见解决方案

接口幂等性问题和常见解决方案 1.什么是接口幂等性问题1.1 会产生接口幂等性的问题1.2 解决思路 2.接口幂等性的解决方案2.1 唯一索引解决方案2.2 乐观锁解决方案2.3 分布式锁解决方案2.4 Token解决方案(最优方案) 3 Token解决方案落地3.1 token获取、token校验3.2 自定义注解,…...

网站首页添加JS弹屏公告窗口教程

很多小白站长会遇到想给自己的网站添加一个弹屏公告&#xff0c;用于做活动说明、演示站提示等作用与目的。 下面直接上代码&#xff1a;&#xff08;直接复制到网页头部、底部php、HTML文件中&#xff09; <script src"https://www.mohuda.com/site/js/sweetalert.m…...

【Rockchip 安10.1 默认给第三方apk默认开启所有权限】

Rockchip 安10.1 默认给第三方apk默认开启所有权限 问题描述解决方法 郑重声明:本人原创博文&#xff0c;都是实战&#xff0c;均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip 3229 OS:Android 10.1 Kernel: 4.19 问题描述 有些第三方或者主界面&…...

python-redis缓存装饰器

目录 redis_decorator安装查看源代码使用 redis_decorators安装查看源代码\_\_init\_\_.pycacheable.py 各种可缓存的类型cache_element.py 缓存的元素caching.py 缓存主要逻辑 使用 总结全部代码参考 redis_decorator 安装 pip install redis_decorator查看源代码 from io …...

每个私域运营者都必须掌握的 5 大关键流量运营核心打法!

很多人觉得私域运营比较简单&#xff0c;只是运营的事情&#xff0c;但事实并非如此&#xff0c;私域运营体系非常大&#xff0c;包含了公私域联动、品牌运营、品类战略&#xff0c;它是一个自上而下&#xff0c;由内到外的系统化工程。 很多人天天在想着如何引流拓客&#xf…...

蓝桥杯--平均

在编程竞赛&#xff0c;尤其是参与蓝桥杯的过程中&#xff0c;遇到各种问题需求是家常便饭。最近&#xff0c;我遇到了一个非常有趣且颇具挑战性的算法问题。问题描述如下&#xff1a;对于一个长度为n的数组&#xff08;n是10的倍数&#xff09;&#xff0c;数组中的每个元素均…...

未来已来:科技驱动的教育变革

我们的基础教育数百年来一成不变。学生们齐聚在一个物理空间&#xff0c;听老师现场授课。每节课时长和节奏几乎一致&#xff0c;严格按照课表进行。老师就像“讲台上的圣人”。这种模式千篇一律&#xff0c;并不适用于所有人。学生遇到不懂的问题&#xff0c;只能自己摸索或者…...

【蓝桥杯每日一题】填充颜色超详细解释!!!

为了让蓝桥杯不变成蓝桥悲&#xff0c;我决定在舒适的周日再来一道题。 例&#xff1a; 输入&#xff1a; 6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 输出&#xff1a; 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1…...

VSCODE的常用插件

1、中文设置 &#xff08;1&#xff09;搜索 chinese Chinese (Simplified) Language Pack for Visual Studio Code C/C Extension Pack &#xff08;2&#xff09;配置 通过使用“Configure Display Language”命令显式设置 VS Code 显示语言&#xff0c;可以替代默认 UI…...

Oracle常用DBA相关语句

Oracle常用DBA相关语句 1 表空间1.1 创建表空间1.2 删除表空间1.3 收缩表空间1.4 新增表空间文件1.5 查看表空间使用情况1.6 查看表所占用的空间大小 2 表分区2.1 查询表分区的创建情况2.2 查询表时指定分区 3 用户3.1 创建用户3.2 给用户赋权限3.3 删除用户 4 导入导出4.1 导入…...

JavaScript 入门指南(一)简介及基础语法

JavaScript 简介 JavaScript&#xff0c;简称 js&#xff0c;是一种基于对象&#xff08;object-based&#xff09;和事件驱动&#xff08;Event Driven&#xff09;的简单的并具有安全性能的脚本语言。 JavaScript 特性 JavaScript 是解释性语言&#xff0c;而不是编译性语言…...

UbuntuServer22.04配置静态IP地址

查看网络配置文件 使用命令, 查看网络配置文件 ls -l /etc/netplan/输出如下(文件名可能不同&#xff0c; 以实际查询为准) -rw------- 1 root root 191 Mar 17 03:30 00-installer-config.yaml编辑文件即可修改网络配置 sudo vim /etc/netplan/00-installer-config.yaml配…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...