Matplotlib之画图模块

news2025/7/28 0:11:27

目录

matplotlib简介

条形图

折线图

散点图 


matplotlib简介

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

Matplotlib 可以用来绘制各种静态,动态,交互式的图表。

Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。

Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

条形图

这是某些受欢迎电影的销量数据

a = ["战狼","速度与激情","功夫瑜伽","变形金刚","最后的骑士","摔跤吧","加勒比海盗","生化危机","金刚狼","蜘蛛侠"]

b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12]  单位: 亿

方法一: 使用条形图,垂直方向展示

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = '/System/Library/Fonts/PingFang.ttc')

a = ["战狼","速度与激情","功夫瑜伽","变形金刚","最后的骑士","摔跤吧","加勒比海盗\n牙买加","生化危机","金刚狼","蜘蛛侠"]  #若电影名太长,可在其中间加入\n进行换行分割

b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12]

plt.figure(figsize=(12,8) , dpi=100)

#就此处不一样
plt.bar(range(len(a)) , b , width=0.3)          # def bar(x轴显示内容 , height , width=0.8),  width控制条形图'条的粗细';  

#设置字符串在x轴上
plt.xticks( range(len(a) ), a , rotation=30 , fontproperties= my_font )

#plt.savefig('./电影.jpg')
plt.xlabel('电影名' , fontproperties= my_font)

plt.ylabel('单位:亿元' , fontproperties= my_font)

plt.title('电影销量统计' , fontproperties= my_font)

plt.show()

方法二: 使用条形图,水平方向展示

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = '/System/Library/Fonts/PingFang.ttc')

a = ["战狼","速度与激情","功夫瑜伽","变形金刚","最后的骑士","摔跤吧","加勒比海盗\n牙买加","生化危机","金刚狼","蜘蛛侠"]

b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12]

plt.figure(figsize=(15,8) , dpi=100)

plt.barh(range(len(a)) , b , height=0.2 , color='orange')  # def barh(y轴显示内容, width, height=0.8)  height控制线条粗细

#设置字符串在x轴上
plt.yticks(range(len(a)), a ,fontproperties= my_font)

#plt.savefig('./电影.jpg')

plt.grid(alpha=0.25 )

plt.xlabel('单位:亿元' , fontproperties= my_font)

plt.ylabel('电影名' , fontproperties= my_font)

plt.title('电影销量统计' , fontproperties= my_font)

plt.show()

折线图

统计出你与同桌个子从11岁到30岁每年交朋友数量,如列表y_1和列表y_2,请在1个图中绘制出该折线图:

y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

y_2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]

要求:

x轴表示岁数,比如11岁,12岁等

y轴表示个数

from matplotlib import pyplot as plt
from matplotlib import font_manager

x = range(11,31)

y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

y_2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]

my_font = font_manager.FontProperties(fname = '/System/Library/Fonts/PingFang.ttc')

plt.figure( figsize=(13,8) , dpi=100 )                      # 设置图片大小

plt.plot(x , y_1 , label='自己' , color='cyan' , linestyle='-' , linewidth=3 )  # 有label后得在下方添加图例 , 不然标记不显示

plt.plot(x , y_2 , label='同桌',color='r',linestyle='--')

#设置x轴刻度
_xtick_labes = ['{}岁'.format(i) for i in range(11,31)]     # 对x轴字符串进行处理

plt.xticks(x, _xtick_labes, fontproperties=my_font)    

#绘制网格
plt.grid( alpha=0.15 , color='c' , linewidth=0.5 )          # 透明度alpha为0~1【其它方面控制线条】

#plt.yticks(range(0,7,1))                                   # 控制y的刻度

#添加图例【为上边函数plot()中label=="自己、同桌" 添加图例】
plt.legend( loc='upper left' , prop=my_font )               # 只有这1块用prop=...  ;loc='图例在折线图中的位置'

plt.xlabel('年龄' , fontproperties=my_font)

plt.ylabel('数量' , fontproperties=my_font)

plt.title('交朋友折线统计图' , fontproperties=my_font)

plt.show()

散点图 

例:北京最高气温
以下是北京2022年3,10月份每天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间(天)变化的某种规律?

y_3 =  [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]

y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc')

x_3  = range(1,32)                                                     # 天数

x_10 = range(51,82)

y_3 =  [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]

y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

#设置图形大小
plt.figure( figsize=(13,8) , dpi=100 )

#使用scatter()绘制散点图,与之前plot()绘制折线图,这是两者的唯一区别
plt.scatter(x_3,y_3 , label='3月份') # 添加了label后,得有下边图例才能显示

plt.scatter(x_10,y_10 , label='10月份')

#若加上以下这2行后,会将以上的'散点图'的点连接起来,成为了'折线图'

#plt.plot(x_3,y_3)

#plt.plot(x_10,y_10)

#调整x轴的刻度
_x = list(x_3) + list(x_10)

_xtrick_label = [  '3月{}日'.format(i) for i in x_3 ]

_xtrick_label += [ '10月{}日'.format( i-50 ) for i in x_10 ]

plt.xticks(_x[::3] , _xtrick_label[::3] , rotation=45 , fontproperties=my_font )      # [::3]表示控制取步长

#添加图例
plt.legend( loc='upper left' , prop=my_font )

#添加描述信息
plt.xlabel('时间',fontproperties=my_font)

plt.ylabel('温度',fontproperties=my_font)

plt.title('北京3月、10月最高气温展示',fontproperties=my_font)

plt.show()

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

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

相关文章

OpenCV-PyQT项目实战(9)项目案例04:视频播放

欢迎关注『OpenCV-PyQT项目实战 Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战(3)信号与槽机制 …

mars3d对geojson图层分属性设置样式

开发中可能会遇到如下需求,在全省的数据中按某个属性⾼亮展示某市区。此时就需要使⽤分属性样式的api了。⽂档如下。GeoJsonLayer - Mars3D API文档属性是根据⽮量数据的属性进⾏匹配。可以通过 layer.graphics[0]?.attr ⽅式获取。 指导有哪些属性之后先设置…

Spark3 新特性之AQE

文章目录Spark3 AQE一、 背景二、 Spark 为什么需要AQE? (Why)三、 AQE 到底是什么?(What)四、AQE怎么用?(How)4.1 自动分区合并4.2 自动数据倾斜处理4.3 Join 策略调整五、对比验证5.1 执行耗时5.2 自动分区合并5.3 自动数据倾斜处理六、结论Spark3 AQ…

电脑录屏怎么操作,操作步骤详解,2023新版

在日常的学习、生活和工作中,当小伙伴想要分享一段游戏视频或者教学视频时,电脑录屏就显得尤为重要了。但是小伙伴你是否知道电脑录屏怎么操作?今天小编就分享电脑录屏操作步骤的详细教程,一起来看看吧。 电脑录屏怎么操作1&#…

【剑指Offer】重建二叉树(递归+迭代)

重建二叉树一、递归法二、迭代法题目链接 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,…

C进阶:7.程序环境和预处理

目录 1.程序的翻译环境和执行环境 2.详解编译 链接 2.1翻译环境 2.2编译本身也分为几个阶段: 2.3运行环境 3.预处理详解 3.1预定义符号 3.2 #define 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3 #define 替换规则 3.2.4 # 和 ## 3.2.5带副…

大规模食品图像识别:T-PAMI 2023论文解读

美团基础研发平台视觉智能部与中科院计算所展开科研课题合作,共同构建大规模数据集Food2K,并提出渐进式区域增强网络用于食品图像识别,相关研究成果已发表于T-PAMI 2023。本文主要介绍了数据集特点、方法设计、性能对比,以及基于该…

Unreal Engine 虚幻引擎,性能分析,优化(二)

一、CPU 性能分析 如渲染线程中出现 CPU 受限,原因可能是绘制调用过多。这是一个常见问题,美术师通常会将绘制调用进行组合,从而减少消耗(如:将多个墙壁组合为一个网格体)。实际消耗存在于多个区域中&…

Ubuntu 22.04.2 发布,可升级至 Linux Kernel 5.19

Ubuntu 22.04 LTS (Jammy Jellyfish) Ubuntu 22.04.2 发布,可升级至 Linux Kernel 5.19 请访问原文链接:Ubuntu 22.04 LTS (Jammy Jellyfish),查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 发行说…

file_get_contents 打开本地文件报错: failed to open stream: No such file or directory

php 使用file_get_contents时报错 failed to open stream: No such file or directory (打开流失败,没有这样的文件或目录) 1. 首先确保文件路径没问题 最好是直接复制一下文件的路径 2. windows电脑可以右键该文件 → 属性→安全 →对象名称 选中后复制一下 3. 然后…

【数据存储】浮点型在内存中的存储

目录 一、存储现象 二、IEEE标准规范 1.存储 2.读取 三、举例验证 1.存储 2.读取 浮点型存储的标准是IEEE(电气电子工程师学会)754制定的。 一、存储现象 浮点数由于其有小数点的特殊性,有很多浮点数是不能精确存储的,如&#…

【unittest学习】unittest框架主要功能

1.认识unittest在 Python 中有诸多单元测试框架,如 doctest、unittest、pytest、nose 等,Python 2.1 及其以后的版本已经将 unittest 作为一个标准模块放入 Python 开发包中。2.认识单元测试不用单元测试框架能写单元测试吗?答案是肯定的。单…

UNIAPP实战项目笔记58 注册成功信息存储到数据库

UNIAPP实战项目笔记58 注册成功信息存储到数据库 注册时候验证手机验证码 验证码通过后讲用户信息存入数据库 实际案例图片 后端接口文件 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js); var user require(…

爱奇艺“资产重定价”:首次全年运营盈利是拐点,底层逻辑大改善

长视频行业历时一年有余的降本增效、去肥增瘦,迎来首个全周期圆满收官的玩家。 北京时间2月22日美股盘前,爱奇艺发布2022年Q4及全年财报,Q4 Non-GAAP净利润明显超越预期,且首次实现全年运营盈利。受业绩提振,爱奇艺盘…

SpringSecurity源码分析(二) SpringBoot集成SpringSecurity即Spring安全框架的执行过程

在上一篇文章中我们描述了SpringSecurity的执行过程。我们我们了解到了以下内容 在SpringSecurity框架中有三个非常核心的类和接口,分别是 1.SecurityFilterChain接口 2.FilterChainProxy类 3.DelegatingFilterProxy类 springboot项目中,客户端向Tomcat …

day51【代码随想录】动态规划之回文子串、最长回文子序列

文章目录前言一、回文子串(力扣647)二、最长回文子序列(力扣516)前言 1、回文子串 2、最长回文子序列 一、回文子串(力扣647) 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目…

从网易到支付宝,3年外包生涯做完,我这人生算是彻底废了......

我为什么一直做外包呢,原因是薪资和技术方面。 在华三做了一年外包,薪资5k,功能测试,接触Linux和网络,但是说实在的技术很难沉淀,就像雾里看花一样,过年之后,想走的人都走了&#x…

Word处理控件Aspose.Words功能演示:使用 C# VB.NET 将 DOCX 转换为 DOC 或将 DOC 转换为 DOCX

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

深度学习编译器CINN(1):框架概览和编译安装

目录 框架概览 编译安装 参考 框架概览 CINN是一种在不改变模型代码的条件下加速飞桨模型运行速度的深度学习编译器。CINN致力于创造训推一体自动调优、分布式编译加速等特色功能,对深度学习模型提供全自动、极致的性能优化,并在科研界和工业界建立影…

【布隆过滤器(Bloom Filter)基本概念与原理、Bloom Filter优点与缺点、以及应用场景】

布隆过滤器(Bloom Filter)基本概念与原理、Bloom Filter优点与缺点、以及应用场景 Bloom Filter 基本概念 布隆过滤器是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在…