数据分析 | Matplotlib

news2025/1/11 12:32:59

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('三角函数可视化')
# 子图 1

ax1 = plt.subplot(2, 2, 1)
ax1.set_title('sin函数')
y1 = np.sin(x)
ax1.plot(x, y1)

# 子图 2

ax2 = plt.subplot(2, 2, 2)
ax2.set_title('cos函数')
y2 = np.cos(x)
ax2.plot(x, y2)

# 子图 3

ax3 = plt.subplot(2, 1, 2)
ax3.set_title('tan函数')
y3 = np.tan(x)
ax3.plot(x, y3)

plt.show()

效果图:

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

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

相关文章

RunnerGo测试平台的安装和使用

文章适用于想RunnerGo入门的同学,本人主要是后端,这里做一个入门的学习记录。想深入适用RunnerGo的同学可以参考官网文档: https://wiki.runnergo.cn/docs/ 这里我测试的代码是之前搭建的一个前后端分离小demo,代码地址是https:/…

交流互动系统|基于springboot框架+ Mysql+Java+Tomcat的交流互动系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

【UE5】非持枪趴姿移动混合空间

项目资源文末百度网盘自取 创建角色在非持枪状态趴姿移动的动画混合空间 在BlendSpace文件夹中单击右键选择 动画(Animation) 中的混合空间(Blend Space) 选择SK_Female_Skeleton 命名为BS_NormaProne 打开BS_NormaProne 水平轴表示角色的方向,命名为Directi…

腾讯云服务器配置2核4G5M带宽是什么意思?

腾讯云服务器2核4G5M带宽配置是代表什么?代表2核CPU、4G内存、5M公网带宽,这是一款轻量应用服务器,系统盘为60GB SSD云硬盘,活动页面 txybk.com/go/txy 活动打开如下图: 腾讯云2核4G5M服务器 如上图所示,这…

Linux 用户及用户组管理

目录 1——添加用户(useradd) 2——删除用户:userdel 3——修改用户:usermod 4——记住用户操作:history 5——查看用户信息:id 6——用户切换:su 问题1:遇到当前的用户不能使…

[蓝桥杯 2021 省 A] 左孩子右兄弟

一、问题描述 P8744 [蓝桥杯 2021 省 A] 左孩子右兄弟 二、问题简析 2.1 左孩子右兄弟 首先,我们要了解怎么通过“左孩子右兄弟”表示法将多叉树转化为二叉树:对于一棵多叉树,一个父节点有多个子节点,将第一个子节点作为父节点…

警惕MKP勒索病毒,您需要知道的预防和恢复方法。

引言: 在网络世界中,.mkp勒索病毒是一股威胁不可小觑的黑暗势力。它以其毒辣的加密手段威胁着我们的数据安全。本文将深入介绍.mkp勒索病毒,揭示如何恢复被其加密的数据文件,并分享一些预防措施,助您在数字世界中安全…

Linux:网络相关概念的认识

文章目录 基本认知数据跨网络传输初识ip地址 端口号端口号的理解 本篇是基于前面对于网络的基本框架搭建,进而进行相关概念的进一步理解,为后续准备 基本认知 那么首先总结一下一些基本的相关结论性的信息 对于任何协议来说,它本身都应该拥…

Langchain-chatchat+ChatGlm3-6b部署

我的环境 台式机 内存:16GB 显卡:GTX1060-6G 1. 基础环境准备 1.1. 安装anaconda,创建环境python版本3.11 conda create -n chatglm3 python3.11 conda activate chatglm3 1.2. 搭建cuda环境 # 查看cuda版本,版本是CUDA V…

如何订阅Midjourney

Midjourney介绍 Midjourney作为目前AI绘画领域效果卓越且备受青睐的工具,对于新用户而言,可能无法享受到免费试用的机会。因此,为了持续利用这款软件进行绘画创作,用户需要购买会员资格并开通订阅服务。那么,关于midj…

Redis数据存储的细节

原文章地址 : 深入学习Redis(1):Redis内存模型 - 编程迷思 - 博客园 (cnblogs.com) 1.概述 关于Redis数据存储的细节,涉及到内存分配器(如jemalloc)、简单动态字符串(SDS)、5种对象…

Python入门(三)

序列 序列是有顺序的数据集合。序列包含的一个数据被称为元素,序列可以由一个或多个元素组成,也是可以没有任何元素的空序列。 序列的类型 元组(定值表):一旦建立,各个元素不可再更变,所以一…

建设IAM/IDM统一身份管理,实现系统之间的单点登录(SSO)

企业实施身份管理的现状: 1.身份存储分散,不能统一供应诸多应用系统,企业用户信息常常存在于多个系统,如HR系统有一套用户信息,OA系统也有一套用户信息,身份存储不集中,不能统一地为诸多应用系…

ChatGPT :确定性AI源自于确定性数据

ChatGPT 幻觉 大模型实际应用落地过程中,会遇到幻觉(Hallucination)问题。对于语言模型而言,当生成的文本语法正确流畅,但不遵循原文(Faithfulness),或不符合事实(Factua…

clickhouse学习笔记01(小滴课堂)

老王经历-数据库架构演变历史 你是否能分清OLTP和OLAP系统 急速掌握-数据库里面行存储和列式存储 新一代列式存储ClickHouse介绍和应用场景说明 Linux服务器容器化部署ClickHouse实战 记得要在安全组里配置开放端口号。 到这我们就安装完了。 简单使用: 创建你的第…

C语言基础练习——Day10

目录 选择题 编程题 不用加减乘除做加法 找到所有数组中消失的数字 选择题 1、求函数返回值,传入-1,则在64位机器上函数返回 int func(int x) {int count 0;while (x){count;x x&(x - 1);//与运算}return count; } A 死循环B 64C 32D 16 答案&…

C# 打开文件对话框(OpenFileDialog)

OpenFileDialog&#xff1a;可以打开指定后缀名的文件&#xff0c;既能单个打开文件也能批量打开文件 /// <summary>/// 批量打开文档/// 引用&#xff1a;System.Window.Fomrs.OpenFileDialog/// </summary>public void OpenFile(){OpenFileDialog dialog new Op…

【解读】保障软件供应链安全:SBOM推荐实践指南(含指南获取链接)

2023年11底&#xff0c;美国NSA&#xff08;National Security Agency&#xff09;、CISA&#xff08;Cybersecurity and Infrastructure Security Agency&#xff09;等多个政府机构部门组成的ESF&#xff08;Enduring Security Framework&#xff0c;持久安全框架&#xff09…

力扣L15--- 67.二进制求和(JAVA版)-2024年3月17日

1.题目描述 2.知识点 注1&#xff1a; 二进制用 %2 /2 3.思路和例子 采用竖位相加的方法 4.代码实现 class Solution {public String addBinary(String a, String b) {StringBuilder sbnew StringBuilder();int ia.length()-1;int jb.length()-1;int jinwei0;int digit1,d…

龙芯新世界系统(安同AOCS OS)安装Cinnamon桌面最新版6.0.4

龙芯的新世界系统安同AOCS OS是十分优秀的操作系统&#xff0c;处于纯社区方式运行&#xff0c;她的各组件更新得很及时&#xff0c;很多组件都处于最新的状态&#xff0c;给我们安装使用最新的开源软件提供了很好的基础。由于本人一直使用Cinnamon桌面环境&#xff0c;各方面都…