matplotlib教程二

news2025/7/18 7:23:14

文章目录

  • 一. 条形图
    • 1.1 简介
    • 1.2 垂直条形图
    • 1.3 水平条形图
  • 二. 直方图
    • 2.1 简介
    • 2.2 API
    • 2.3 直方图绘制
  • 三. 饼图
    • 3.1 简介
    • 3.2 API
    • 3.3 饼图绘制
  • 四. 散点图
    • 4.1 简介
    • 4.2 API
    • 4.3 散点图绘制
  • 五. 箱形图
    • 5.1 简介
    • 5.2 API
    • 5.3 绘制箱状图
  • 六. 轮廓图
    • 6.1 简介
    • 6.2 轮廓图绘制
  • 七. 图像内的文字、注释和箭头
    • 7.1 Api介绍
    • 7.2 Api使用

matlabplid的教程一 传送门

一. 条形图

1.1 简介

条形图是一种图表或图形,它显示带有矩形条的分类数据,其高度或长度与它们所代表的值成比例。条形图显示了离散类别之间的比较,图表的一个轴显示特定类别,另一个轴表示测量值

1.2 垂直条形图

ax.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kawargs)

参数说明
x表示条形的x坐标的标量序列。如果x是条形中心(默认)或左边缘,则对齐控件
height标量或标量序列表示条形的高度
width标量或类似数组,可选,条形的宽度默认为0.8
bottom标量或类似数组,可选,条形的y坐标默认为None
align{‘center’,‘edge’},可选 ,默认为center
color条形颜色,可以是字符串也可以是列表

垂直基本条形图

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
langs=["c","c++","python","Java","PHP"]
nums=[22,45,65,33,42]
ax.bar(langs,nums,0.5,10,align='center',color='red')

在这里插入图片描述

垂直组合条形图

当比较多个数量值时,可能需要一个条形图,其中一个颜色的条形图用于一个数量值

import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
x=np.arange(4)
data=[[30,25,50,20],
    [40,23,51,17],
    [35,22,48,19]]
ax.bar(x,data[0],color='r',width=0.25)
ax.bar(x+0.25,data[1],color='b',width=0.25) #让x轴平移,不然会发生覆盖
ax.bar(x+0.5,data[1],color='g',width=0.25) #让x轴平移,不然会发生覆盖
plt.show()

在这里插入图片描述
垂直堆叠条形图
堆积条形图堆叠表示彼此顶部的不同组的条形图,结果为条形图的高度显示组的组合结果。Pylot.bar()函数的可选bottom参数指定条的起始值。它不是从零运行到一个值,而是从底部到值。第一次调用pylot.bar()绘制蓝条。第二次调用pylot.bar()绘制红色条形图,蓝色条形图的底部位于红色条形图的顶部。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
N=5
ind=np.arange(1,N+1)
menNum=(20,35,30,35,27)
womenNum=(25,32,34,20,25)

ax.bar(ind,menNum,color='r')
ax.bar(ind,womenNum,bottom=menNum,color='b')
ax.set_ylabel('peopleNum')
ax.set_title('The number of men and women in the class')
ax.set_xticks(ind)
ax.set_xticklabels(['G1','G2','G3',"G4",'G5'])
ax.set_yticks(np.arange(0,81,10))
ax.legend(labels=['men','women'])
plt.show()

在这里插入图片描述

1.3 水平条形图

ax.barh(y,width,height=0.8,left=None,*,align='center',**kwargs)

参数说明
y表示条形的y坐标的序列,如果y是条形中心(默认)或左缘,则对齐
width标量或标量序列表示的条的宽度
height标量或类似数组,可选
bottom标量或类似数组,可选
alith{‘center’,‘edge’},可选,默认’center’
color条形颜色,可以是字符串也可以是列表
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
langs=["c","c++","python","Java","PHP"]
nums=[22,45,65,33,42]
ax.barh(langs,nums,0.5,10,align='center',color='red')

在这里插入图片描述

其它水平组合和堆叠条形图使用方法和垂直条形图的使用方法是一样的,这里就不展开介绍了

二. 直方图

2.1 简介

直方图是数值数据分布的精确表示。它是连续变量的概率分布的估计,它是一种条形图

2.2 API

ax.hist(x,bins=None,density=None,range=None,weights=None,cumulative=False,bottom=None,histtype='bar',align='mid',orientation='vertial',rwidth=None,log=False,color=Nnoe,label=None,stacked=False,normed=None,*,data=None,**kwargs,)

参数说明
x数组或者是数组序列
bins整数或序列或auto,可选项,通常指定为变量的连续,非重叠区间
rangebins的下部和上部范围
density如果为true则返回元组的第一个元素将是规范化以形成概率密度的计数
cumulative如果为True,则计算直方图,其中每个bin给出该bin中的计数加前面所有bin的值
histtype要绘制的直方图的类型,默认为bar
normed如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
orientation通过设置orientation为 horizontal创建水平直方图,默认你为垂直

2.3 直方图绘制

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
a=np.array([22,87,5,43,56,74,55,54,11,20,51,5,79,31,27])
ax.hist(a,bins=[0,25,50,75,100])#bin用来表示区间,例如[0,25]然后直方图表示的就是落在这个区间数据的数量
ax.set_title("Result histogram")
ax.set_xticks([0,25,50,75,100])
ax.set_xlabel('score')
ax.set_ylabel('The number of students')
plt.show()

在这里插入图片描述

三. 饼图

3.1 简介

饼图只能显示一系列数据,饼图在一个数据系列中显示项目的大小(称为楔形),与项目的总和成比例,饼图中的数据点显示为整个饼图的百分比

3.2 API

ax.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radiuis=None,counterclock=True,wedgeprops=None,textpros=None,center=(0,0),frame=False,rotatelabels=False,*,)

参数说明
x数组式,楔形大小
explode设置每一块顶点距圆形的长度(比例值,会使得楔形从圆形中拉出来)
labels列表。一系列字符串,为每个楔形提供标签
colors一系列matplotlib颜色参数,饼图将通过它循环。如果为None,将使用当前活动周期中的颜色
autopctString用于用数值标记楔形。标签将放在楔子内。格式字符串将为fmt%pct
pctdistance设置比例值文字距离圆心的距离
shadow布尔值,设置是否绘制阴影
startangle设置选择旋转度

3.3 饼图绘制

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure(figsize=(10,5))
ax=fig.add_axes([0,0,1,1])
ax.axis('equal') #如果不设置equal由于x轴和y轴的比例不同,导致绘制出是一个椭圆
langs0=['c','c++','java','Python','PHP']
students=[23,17,35,29,12]

ax.pie(students,labels=langs,autopct="%.2f%%",colors=['red','yellow','blue','green','pink'],explode=[0.1,0,0,0,0],
      shadow=True) #表示保留2位小数


在这里插入图片描述

四. 散点图

4.1 简介

散点图用于绘制水平轴和垂直轴上的数据点,以试图显示一个变量受另一个变量 影响的程度。数据表中的每一行都由一个标记表示,该位置取决于其在X和Y轴上设置的列中的值,可以将第三个变量设置为对应标记的颜色或大小,从而为该图添加另一个维度。

4.2 API

ax.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=None,edgecolors=None,*,plotnonfinite=False,data=None,**kwargs,)

4.3 散点图绘制

fig=plt.figure(figsize=(10,5))
ax=fig.add_axes([0,0,1,1])

girls_grades=[89,90,70,89,100,80,90,100,80,34]
boys_grades=[30,29,49,48,100,48,38,45,20,30]
grades_range=[10,20,30,40,50,60,70,80,90,100]
ax.scatter(grades_range,girls_grades,color='r',alpha=1)
ax.scatter(grades_range,boys_grades,color='b',alpha=1)
ax.set_title("examples of scatter plots")
ax.set_xlabel("scores range")
ax.set_ylabel("scores")
ax.legend(labels=['girls','boys'])
plt.show()

在这里插入图片描述

五. 箱形图

5.1 简介

箱型图也称为须状图,显示包含最小值,第一四分位数,中位数,第三四分位数和最大值的一组数据的摘要。

在这里插入图片描述
在箱形图中间的方块,绘制的从第一个四分位数到第三个四分位数的方框。垂直线穿过方框,须状从每个四分位数到最小值和最大值

5.2 API

ax.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,bootstrap=None,usermedians=None,conf_intervals=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxpros=None,labels=None,flierprops=None,medianprops=None,capprops=None,whiskerprops=None,manage_ticks=True,autorange=False,zorder=None,*,data=None)

和其它API一样,虽然参数多但基本上用不到

5.3 绘制箱状图

fig=plt.figure(figsize=(10,5))
ax=fig.add_axes([0,0,1,1])
np.random.seed(10)  #传入随机数种子
collectn_1=np.random.normal(100,10,200)  #生成正态分布情况的数据(均值,标准差,个数)
collectn_2=np.random.normal(80,30,200)
collectn_3=np.random.normal(70,25,200)
collectn_4=np.random.normal(70,25,200)

ax.boxplot([collectn_1,collectn_2,collectn_3,collectn_4])
plt.show()

在这里插入图片描述

六. 轮廓图

6.1 简介

轮廓图(有时也称为水平图)是一种在二维平面上绘制三维表面的方法,它绘制了y轴上的两个预测变量X,Y的轮廓的响应变量。这些轮廓有时称为z切片或等响应值。如果要查看Z如果随两个输入X和Y的变化而变化,则轮廓图是非常适用的,例如Z=F(X,Y)。两个变量函数或等值线是函数具有常数值的曲线。自变量x和y通常限于称为meshgrid的规则网络。使用numpy.meshgrid使用x值数组和y值数组创建一个矩形网络。

6.2 轮廓图绘制

fig=plt.figure(figsize=(10,5))
ax=fig.add_axes([0,0,1,1])
x=np.linspace(-3,3,100)
y=np.linspace(-3,3,100)
X,Y=np.meshgrid(x,y)#生成矩形网格
z=np.sqrt(X**2+Y**2)
ct=ax.contourf(x,y,z)  #绘制三维图像的切面图
fig.colorbar(ct)#颜色导航
plt.show()

在这里插入图片描述

七. 图像内的文字、注释和箭头

7.1 Api介绍

Pyplot函数描述
text()在Axes对象的任意位置添加文字
xlabel()给x轴添加标签
ylabel()个Y轴添加标签
title()给Axes对象添加标题
legend()为Axes对象创建图例
suptitle()为Figure对象添加中心化标题
figtext()在FIgure对象的任意位置添加文字
annotate()为Axes对象添加注释(箭头可选)

7.2 Api使用

  1. text(),xlabel(),ylabel(),title(),legend()
    可以将任何matplotlib文本字符串中的子集TeXmarkup放在一对美元符号($)中
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
t=np.arange(0.0,2.0,0.01)
s=np.sin(2*np.pi*t)
ax.plot(t,s)
ax.set_title(r"$\sin x_i$",fontsize=20)  #$$中写的就是公式,使用的是markdown的语法
ax.text(0.6,0.3,r'sunck is a good man',fontsize=20,bbox={'facecolor':'red'}) #位置是(0.6,0.3)单位为英寸
ax.set_xlabel("time(s)")
ax.set_ylabel("vo;ts(mv)")
ax.legend(labels=("k"),loc="right")
plt.show()

在这里插入图片描述
2. subtitle(),figtext()

import math
fig=plt.figure(figsize=(12,6))
x=np.arange(0,math.pi*2,0.05)
y1=np.sin(x)
y2=np.cos(x)
ax1=plt.subplot(121)
ax1.plot(x,y1)
ax2=plt.subplot(122)
ax2.plot(x,y2,color='r')
plt.suptitle("sin&cos") #画纸的主标题
plt.figtext(0.3,0.8,s="sin(0)=0") #在figure对象的指定位置加入指定的文字 
plt.show()

在这里插入图片描述
3. annotate()

参数说明
xy设置箭头所指的坐标位置
xytext设置注释文字的位置
arrowprops以字典的形式设置箭头的样式
箭头的样式属性说明
width设置箭头长方形部分的宽度
headlength设置箭头尖端的长度
headwidth设置箭头尖端底部的宽度
facecolor设置箭头的颜色
shrink设置箭头的顶点、尾部与指示点和注释文字之间的距离(比例值)
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
t=np.arange(0.0,2.0,0.01)
s=np.sin(2*np.pi*t)
ax.plot(t,s)
ax.set_title(r"$\sin x_i$",fontsize=20)  #$$中写的就是公式,使用的是markdown的语法
ax.set_xlabel("time(s)")
ax.set_ylabel("vo;ts(mv)")
ax.legend(labels=("k"),loc="right")
ax.annotate("sunck",xy=(1.5,0.8),xytext=(1,0.4),arrowprops=dict(facecolor='red',shrink=(0.005)))
plt.show()

在这里插入图片描述
箭头使用汇总

fig=plt.figure(figsize=(12,9))
ax=fig.add_axes([0,0,1,1])
arrstyles=['-','->','-[','<-','fancy','simple','wedge']
for i, style in enumerate(arrstyles):
    ax.annotate(style,xy=(0.2,0.9-0.1*i),xytext=(0.05,0.85-0.1*i),arrowprops=dict(arrowstyle=style)) #箭头的样式
connstyles=['arc','arc,angleA=10,armA=30,rad=30','arc3,rad=.2','arc3,rad=-.2','angle','angle3']
for i ,style in enumerate(connstyles):
    ax.annotate(style,xy=(0.7,0.9-0.1*i),xytext=(0.6,0.85-0.1*i),arrowprops=dict(arrowstyle="->",connectionstyle=style))#箭头的形状

在这里插入图片描述

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

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

相关文章

Android Studio实现一个点餐系统

点餐系统作业要求效果登录注册欢迎页用户管理菜品种类管理菜品管理订单查询点餐源码导读手把手编写注册、用户管理板块新建实体类User新建User服务新建注册活动用户管理作业要求 功能&#xff1a; 1&#xff0e;数据管理 菜品类别&#xff1a;凉菜&#xff1b;热菜&#xff1b;…

投资组合优化的人工蜂群算法(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

力扣(LeetCode)1732. 找到最高海拔(C++)

前缀和 这道题&#xff0c;很容易看出&#xff0c;gaingaingain (海拔高度差) 是海拔高度的一个差分&#xff0c;对 gaingaingain 用前缀和&#xff0c;就能求出每个点的海拔了。题目要求我们&#xff0c;找最高海拔&#xff0c;那么只需要维护一个变量 ansansans &#xff0c…

【NLP】使用 BERT 和 PyTorch Lightning 进行多标签文本分类

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【论文精读5】MVSNet系列论文详解-Point-MVSNet

Point-MVSNet全文名称&#xff1a;Point-Based Multi-View Stereo Network&#xff0c;是2019提出的使用coarse-to-fine方法来优化深度图推断过程的网络结构&#xff0c;与上一篇CVP-MVSNet都是迭代优化的思想&#xff0c;不同的是Point-MVSNet在点云上进行操作&#xff0c;而C…

基于51单片机的二氧化碳(CO2)气体浓度监测报警系统

基于51单片机的二氧化碳&#xff08;CO2&#xff09;气体浓度监测报警系统( proteus仿真程序演示视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0073 这里写目录标题基于51单片机的二氧化碳&am…

【数据结构】栈和队列的实现

文章目录一、栈的实现二、队列的实现一、栈的实现 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除元素的操作&#xff0c;进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈低。栈遵循数据后进先出的原则。 创建一个栈&#xff1a; typedef …

就是一整个爱住,你们大胆飞,我就是最坚强的后盾——Java面试突击宝典

前言 马老师说过&#xff0c;员工的离职原因很多&#xff0c;只有两点最真实&#xff1a; 钱&#xff0c;没给到位 心&#xff0c;受委屈了 当然&#xff0c;我是想换个平台&#xff0c;换个方向&#xff0c;想清楚为什么要跳槽&#xff0c;如果真的要跳槽&#xff0c;想要拿…

75.【JavaWeb-03】

JavaWeb(十五)、JavaBean(十六)、MVC三层框架1.早些年:2.三层架构:(十七)、Filter(过滤器)1加入依赖2.基本步骤3.出现500错误的话4.案列演示(十八)、Listener(监听器)1.利用监听实现在线人数的统计(十九)、小结对18之前的(二十)、过滤器、监听器常见应用1.过滤器注册和注销操作…

一起Talk Android吧(第四百一十八回:制作时钟)

文章目录整体思路准备画布绘制表盘绘制刻度绘制指针示例代码各位看官们大家好&#xff0c;上一回中咱们说的例子是"解决Glide不能加载网络图片的方法",这一回咱们介绍的例子是"制作时钟"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android…

向毕业妥协系列之深度学习笔记:神经网络深度学习(一)

目录 一.神经网络杂记 二.计算图&#xff08;反向传播求导几个实例&#xff09; 1.普通式子反向传播求导 2.逻辑回归中的梯度下降 3.m个样本的梯度下降 三.向量化 深度学习系列的文章也可以结合下面的笔记来看&#xff1a; 深度学习笔记-目录 一.神经网络杂记 这个系列…

不知道word压缩文件怎么弄?简单三步轻松实现

如果你是学生&#xff0c;那么你的作业、论文应该都是以word文档格式上交的吧&#xff1f; 如果你是打工人&#xff0c;应该也经常需要编辑一些文档&#xff0c;例如通知、工作安排等等&#xff0c;给上司或其他同事查阅。 那么久而久之积累下来&#xff0c;word文件就会占据电…

TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例

TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例 如下图所示,首先,新建一个项目,添加一个DB块,这里以DB276为例进行说明,在该DB块中添加如图所示变量, 如下图所示,添加一个FB,用于读取IO点的值,具体程序可参考下图, 如下图所示,在OB1中调…

使用马尔可夫链构建文本生成器

本文中将介绍一个流行的机器学习项目——文本生成器&#xff0c;你将了解如何构建文本生成器&#xff0c;并了解如何实现马尔可夫链以实现更快的预测模型。 文本生成器简介 文本生成在各个行业都很受欢迎&#xff0c;特别是在移动、应用和数据科学领域。甚至新闻界也使用文本生…

PyTorch中的matmul函数详解

PyTorch中的两个张量的乘法可以分为两种&#xff1a; 两个张量对应的元素相乘&#xff08;element-wise&#xff09;&#xff0c;在PyTorch中可以通过torch.mul函数&#xff08;或者∗*∗运算符&#xff09;实现 两个张量矩阵相乘&#xff08;Matrix product&#xff09;&…

Day07--生命周期的概念与分类

文字概述&#xff1a; 1.啥子是生命周期呢&#xff1f; ***********************************************************************************************************************************************************************************************************…

[附源码]Python计算机毕业设计毕业生就业信息管理系统

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

EasyExcel对大数据量表格操作导入导出

前言 最近有个项目里面中有大量的Excel文档导入导出需求&#xff0c;数据量最多的文档有上百万条数据&#xff0c;之前的导入导出都是用apache的POI&#xff0c;于是这次也决定使用POI&#xff0c;结果导入一个四十多万的文档就GG了&#xff0c;内存溢出... 于是找到EasyExce…

上采样,下采样,卷积,反卷积,池化,反池化,双线性插值【基本概念分析】

上采样,下采样,卷积,反卷积,池化,反池化,双线性插值【基本概念分析】】一、上采样1.概念2.原理二、下采样1.概念2.原理三、卷积与反卷积四、池化五、反池化六、双线性插值1.意义2.作用3.单线性插值4.双线性插值的公式5.双线性插值的例子一、上采样 1.概念 上采样&#xff08;…

前端页面全新的写法(第七课)Vue中的组件

VueCli框架的实操内容(第七课)Vue中的组件 组件是可复用的 Vue 实例, 把一些公共的模块抽取出来&#xff0c;然后写成单独的的工具组件或者页面&#xff0c;在需要的页面中就直接引入即可那么我们可以将其抽出为一个组件进行复用。例如 页面头部、侧边、内容区&#xff0c;尾部…