Matplotlib学习

news2024/11/25 20:52:05

文章目录

  • Matplotlib
    • 曲线图的绘制
    • 饼图的绘制
    • 直方图的绘制
    • 散点图的绘制

Matplotlib

在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。这里,我们来介绍一下图形的绘制方法和图像的显示方法。

曲线图的绘制

plt.plot()参数分析:

plt.plot(x,y,format_string,**kwargs)

  • x表示二维坐标中X轴数据(列表或数据,可选)
  • y表示二维坐标中Y轴数据(列表或数据)
  • format_string表示控制曲线的格式字符串(线宽,线型,颜色等等),可选
  • **kwargs表示第二组或更多(x,y,format_string)
import matplotlib.pyplot as plt
import numpy as np

a = np.arange(10)  # 以1为单位,生成0到10的数据
plt.plot(a,a*1.5,'r--.',  a,a*2.5,'g:^',  a,a*3.5,'c-*',  a,a*4.5) # 多组参数,每组3个参数,表示一个图像对象,前两个参数为坐标数据,第个参数控制曲线格式
plt.xlabel("横轴",fontproperties='Kaiti',fontsize=20)
plt.ylabel("纵轴",fontproperties='Kaiti',fontsize=20)
plt.savefig('line',dpi=600,bbox_inches='tight') # 用于保存图片 参数:文件名,分辨率,保存部分参数
plt.show()

在这里插入图片描述

饼图的绘制

plt.pie()参数分析:

import matplotlib.pyplot as plt

plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None,center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)
  • x即每个扇形的占比的序列或数组
  • explode如果不是None,则是一个len(x)长度的数组,指定每一块的突出程度;突出显示,设置每一块分割出来的间隙大小
  • labels为每个扇形提供标签的字符串序列
  • colors为每个扇形提供颜色的字符串序列
  • autopct如果它是一个格式字符串,标签将是fmt % pct。如果它是一个函数,它将被调用
  • shadow阴影
  • startangle从x轴逆时针旋转,饼的旋转角度
  • pctdistance, default: 0.6每个饼片的中心与由autopct生成的文本的开头之间距离与半径的比率,大于1的话会显示在圆外
  • labeldistance, default: 1.1饼状图标签绘制时的径向距离(我认为这个也与8类似是个比率)。如果设置为None,则不绘制标签,而是存储在图例()中使用。
import matplotlib.pyplot as plt

labels = 'Frogs','Hogs','Dogs','Logs' #饼图的标签
sizes = [15,30,45,10] #每个饼块的比例
explode = (0,0.1,0,0) #第二块突出

plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',pctdistance=0.7,shadow=False,startangle=90)
plt.axis('equal') #饼图成圆形
plt.legend(loc=(0.8,0.8)) #显示图例
plt.savefig('pie.png',dpi=600,bbox_inches='tight') #保存图片
plt.show() #展示图片

在这里插入图片描述

直方图的绘制

plt.hist()参数分析:

import matplotlib.pyplot as plt

plt.hist(x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, *, data=None, **kwargs)
  • x:数组或(允许长度不等的)数组序列
  • bins:整数值或序列。如果bins为整数值,则bins为柱子个数,根据数据的取值范围和柱子个数bins计算每个柱子的范围值,柱宽=(x.max()-x.min())/bins。如果bins取值为序列,则该序列给出每个柱子的范围值(即边缘)。除最后一个柱子外,其他柱子的取值范围均为半开(左闭右开)。
  • density:布尔值。如果为true,则返回的元组的第一个参数frequency将为频率而非默认的频数。可自行验证sum(frequency)。
  • weights:与x形状相同的权重数组。将x中的每个元素乘以对应权重值再计数。如果normed或density取值为True,则会对权重进行归一化处理。这个参数可用于绘制已合并的数据的直方图。
  • cumulative:布尔值。如果为True,则计算累计频数。如果normed或density取值为True,则计算累计频率。
  • bottom:数组,标量值或None。每个柱子底部相对于y=0的位置。如果是标量值,则每个柱子相对于y=0向上/向下的偏移量相同。如果是数组,则根据数组元素取值移动对应的柱子。
  • histtype:{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}。'bar’是传统的条形直方图; 'barstacked’是堆叠的条形直方图;‘step’是未填充的条形直方图,只有外边框; ‘stepfilled’ 是有填充的直方图。当histtype取值为’step’或’stepfilled’,rwidth设置失效,即不能指定柱子之间的间隔,默认连接在一起。
  • align:{‘left’, ‘mid’, ‘right’}。‘left’:柱子的中心位于bins的左边缘;‘mid’:柱子位于bins左右边缘之间;‘right’:柱子的中心位于bins的右边缘。
  • orientation:{‘horizontal’, ‘vertical’}:如果取值为horizontal,则条形图将以y轴为基线,水平排列。
  • rwidth:标量值或None。柱子的宽度占bins宽的比例。
  • color:具体颜色,数组(元素为颜色)或None。有facecolor,edgecolor
  • label:字符串(序列)或None。有多个数据集时,用label参数做标注区分。
  • stacked:布尔值。如果取值为True,则输出的图为多个数据集堆叠累计的结果;如果取值为False且histtype=‘bar’或’step’,则多个数据集的柱子并排排列
  • normed:布尔值。官方不推荐使用,建议改用density参数。
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0) #随机数种子
mu,sigma = 100,20 #均值和标准差
a = np.random.normal(mu,sigma,size=100) #产生具有正态分布的数组

plt.hist(a,20,density=1,histtype='bar',facecolor='blue',edgecolor='black',alpha=0.7)
plt.title('Histogram') #直方图标题
plt.savefig('hist.png',dpi=600,bbox_inches='tight') #保存图片
plt.show() #展示图片

在这里插入图片描述

散点图的绘制

import numpy as np
import matplotlib.pyplot as plt

fig,ax = plt.subplots() #面向对象绘制
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('Simple Scatter')
    
plt.savefig('散点图.png',dpi=600,bbox_inches='tight') #保存图片    
plt.show() #展示图片

在这里插入图片描述

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

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

相关文章

Linux学习之文件信息和文件类型

使用ls -l可以看到当前目录下除隐藏文件之外的文件。 我们拿下边这行信息解释一下: -rw-r--r-- 1 root root 10562254 Mar 9 00:08 cmake-3.25.3.tar.gz Linux中“一切皆文件”,首先需要明确这点,因为对于不同的文件类型,后边的…

前后端分离项目之修改存储信息

本文章基于:前后端分离项目之登录页面(前后端请求、响应和连接数据库)_小俱的一步步的博客-CSDN博客 目录 一、编辑者操作步骤 二、代码实现步骤 以下以存储学生信息为例 一、编辑者操作步骤 1.在前端“编辑”按钮,点击时弹出弹框,出现…

某大厂测试开发面试总结,大家可以参考一下

目录 前言 1、RecyclerView和ListView的区别 2、技术选型的依据 3、原生monkey的原理 4、monkey和monkeyRunner区别 5、appium和uiautomator的关系或者Airtest和uiautomator的区别 6、Android进程间通信方式 7、内存溢出与内存泄露的区别及内存泄漏的原因 8、性能数据收…

mac版Excel表格中出现E+

相信很多人在使用Excel的时候都遇到过单元格变成###的情况,这是由于单元格列宽不够造成的,只需要增加列宽就可以正常显示。如果你在使用Excel的过程中遇到过出现"E"这种情况,此时不要惊慌,这是Excel自动对很大或很小的数…

C语言实现汉诺塔问题【图解和演示】

大家好,我是纪宁。 在高中时,曾有一位故友问过我类似这种移盘子的题目(数列),我当时一脸茫然,上了大学才知道原来是著名的汉诺塔问题 本文,就将介绍汉诺问题的由来、原理、及C语言如何实现 目录…

ZooKeeper【实际案例】

服务器动态上下线监听 需求 在我们的分布式系统中,有多台服务器节点,我们希望任意一台客户端都能实时收到服务器节点的上下线。 实现 服务器节点上线以后自动去zookeeper目录注册自己的节点信息(创建Znode临时节点)&#xff0c…

无人机侦察区域覆盖

irvingvasquez/ocpp: Optimal coverage path planning (github.com) matlab2020可运行

MySQL数据表进阶操作

MySQL数据表高级操作 一、克隆表二、清空表三、创建临时表四、创建外键约束五、MySQL中6种常见的约束:六、数据库用户管理 一、克隆表 将数据表的数据记录生成到新的表中 被克隆的对象: 方法一: 第一步:create table 新表名 li…

2023年简历石沉大海,别投了,软件测试岗位饱和了....

各大互联网公司的接连裁员,政策限制的行业接连消失,让今年的求职雪上加霜,想躺平却没有资本,还有人说软件测试岗位饱和了,对此很多求职者深信不疑,因为投出去的简历回复的越来越少了。 另一面企业招人真的…

机器学习_预测概率校准

我们在建模时通常根据准确性或准确性来评估其预测模型,但几乎不会问自己:“我的模型能够预测实际概率吗?” 但是,从商业的角度来看,准确的概率估计是非常有价值的(准确的概率估计有时甚至比好的精度更有价值…

Dao层、Service层、Entity层、Servlet层、Utils层

这几天在复习高数,还有刷题。 B: 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/S3imr G: 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/UVgfK Dao层是数据访问层Service层是业务逻辑层…

深度学习HashMap之手撕HashMap

认识哈希表 HashMap其实是数据结构中的哈希表在Java里的实现。 哈希表本质 哈希表也叫散列表,我们先来看看哈希表的定义: 哈希表是根据关键码的值而直接进行访问的数据结构。 简单说来说,哈希表由两个要素构成:桶数组和散列函数…

汽车电子Autosar之车载以太网

前言 近些年来,随着为了让汽车更加安全、智能、环保等,一系列的高级辅助驾驶功能喷涌而出。未来满足这些需求,就对传统的电子电器架构带来了严峻的考验,需要越来越多的电子部件参与信息交互,导致对网络传输速率&#x…

NR及LTE中的IQ数据与信息、比特率、码元、波特率之间的关系

信息与比特率 信息:对信源进行数字编码后的数据,基本单位是bit。 比特率:信息的速率称为比特率(bit/s、bps),通常用Rb表示。 码元与波特率 码元 固定时长的信号波形(数字脉冲),也称为一个符号,symb。 (…

LeetCode36. 有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) …

【极海APM32F4xx Tiny】学习笔记05-移植 RTT NANO工程

5.移植 RTT NANO工程 移植步骤: 1. mdk添加rtt nano 包文件 2. 添加源码 3. 屏蔽2个中断处理函数 4. 修改board.c文件 5. 添加控制台 6. 添加finsh组件 7. 编写测试工程 1. mdk添加rtt nano 包文件 也可以下载后手动安装 下载链接https://www.rt-thread.org/downl…

【openeuler】Yocto embedded sig联合例会 (2022-11-03)

Yocto &embedded sig联合例会 (2022-11-03)_哔哩哔哩_bilibili

从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花。这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. CDN和路由器…

STM32-I2C通信在AT24C02的应用

AT24C02是一种失去电源供给后依旧能保持数据的储存器,常用来储存一些配置信息,在系统重新上电之后也可以加载。它的容量是2k bit的EEPROM存储器,采用I2C通信方式。 AT24C02支持两种写操作:字节写操作和页写操作。本实验中我们采用…

三十八、动态规划——背包问题( 01 背包 + 完全背包 + 多重背包 + 分组背包 + 优化)

动态规划-背包问题算法主要内容 一、基本思路1、背包问题概述2、动态规划(DP)问题分析 二、背包问题1、0 1 背包问题2、完全背包问题3、多重背包问题4、分组背包问题 三、例题题解 一、基本思路 1、背包问题概述 0 1 背包问题: 条件&#x…