matplotlib绘图看这篇就够了

news2024/11/27 9:51:07

导入matplotlib第三方库

此外,在matplotlib中我们可以只输入y轴,即为只输入一个数组我们也可以输出,x不为必要条件。而且也可以使用plt.xticks()函数进行设置x轴的label。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 可以正常显示中文
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.tight_layout() # 为了正常显示一些图表被遮盖或者不完全显示的问题
import random
import numpy as np

理解axes,figure,plot和对应函数

axis,axes,figure的区别

简单来说,axis为坐标轴,axes为画图的时候一个添加的子区域,figure为一个绘制图片的一个画布。具体区分如图所示。

ax,figure,plot的区别

ax如上所示,一般代表的是一个axes区域。即为figure上的一个子模块,但是一般用plt.plot()的时候是获取当前的axes进行使用的。

figure是一个话的话,ax为其中的一个元素如花等。即为figure包含ax。

plot()为一个最基础的绘图函数,我们一般都在这个绘图函数上加入横纵坐标数据。

ax和figure一般用下列三种方法生成。具体如代码所示。

# ax代码生成一般主要有以下三种方法
fig = plt.figure()
ax = fig.add_subplot(2, 2, 1)
ax = plt.subplot(2, 2, 1)
fig, ax = plt.subplots(2, 2) # 此时的ax为一个列表,List[list[axes]]
# fig生成一般有以下两种方法
fig = plt.figure()
fig, ax = plt.subplots(2, 2) # 此时的ax为一个列表,List[list[axes]]
ax_1 = ax[0,0]
ax_2 = ax[0,1]
x = np.random.randn(10)*10
y = np.random.randn(10)*10
ax_1.plot(x, y)
ax_2.plot(x, y)

plt.subplots()函数(生成figure和axes的列表对象)

plt.subplots函数具体为生成一个figure画布和多个axes子区域。

fig, ax = plt.subplots(2,2)# 这里代表的是生成一共有四个axes的figure,即为一个画布上有四个对象,而且ax为第一个对象
# 2,2,1 代表将整个图像窗口分为两行两列,而且当前位置为1,
# 此时的ax为可以选择ax[0,0][0,1][1,0][1,1],但没有办法加入plt.subplots(2,2,1)
ax_2 = fig.add_subplot(2,2,1)

plt.subplot()函数(生成axes对象)

这里的话主要是进行添加axes区域的,个人理解是直接调用现有的figure对象直接在figure上进行操作。如果没有fig = plt.figure(),会自动生成一个figure对象。

# fig = plt.figure()
ax = plt.subplot(2,2,1)
ax.plot(x,y)

plt.figure()函数(生成figure对象)

plt.figure()为生成一个figure,参数为name,figsize()等具体如图所示。

figure(name=int|str, figsize(width, height)),
name如果相同即为画在同一个axes对象中,如果name不同,重新绘制一个figure对象
figsize主要是控制figure的尺寸大小,width为宽度,height为高度
fig = plt.figure(1, figsize(10,8))
x = np.random.randn(10)*10
y = np.random.randn(10)*10
plt.plot(x, y)

fig.add_subplot()函数(个人认为最方便和最佳)

这里的话一般是放置在已经生成figure的前提下,效果会好很多,个人更推荐用这种方法。

fig = plt.figure()
ax = fig.add_subplot(2,2,1)
ax.plot(x,y)

plt.plot()函数和对应画出图像的线条,点型,颜色

plt.plot(color='', linestyle='', marker='',markerfacecolor='', markersize='')
'''
color代表线段颜色
linestyle代表线段的类型
marker代表线段上的对应点的标识
markerfacecolor为标记(marker)的颜色
markersize为标记(marker)的尺寸
里面都需用''引号
'''

主要为绘制一个简单的线形图,而且参数一般为(x,y)即为x轴的数据和y轴的数据,此外还有一些特殊的图例,需要到后面解释和介绍,比如画出直线,虚线,还有显示点的坐标的形状等等。

本题目主要介绍的是画出图像对应的线条,点型和颜色。

plot(x, y, 'fmt')
fmt主要分为三个参数,即为color,marker(点型),线形(linestyle)
plot(x, y, color='blue',marker='o', linestyle='-')

颜色主要如下所示,也可以用#0000的十六进制表示颜色

'b' blue 蓝色,'g' green 绿色, 'r' red 红色,'c' cyan 蓝绿,
'k' black 黑色, 'w' white 白色,'m' magenta 洋红, 'y' yellow 黄色

对于其中点的形状主要如下所示。

'.' 为圆点, ',' 为pixel marker, 'o'为空心圆点, '^'为上三角形,
'v'为下三角形,'<'为左三角形,'>'为右三角形,'+'为十字标记,'x'为x标记
'D'为菱形标记,'*'Wie星形标记,'d'为瘦菱形标记,'|'为垂直线标记

对于linestyle主要有以下格式

'-'为实线,'--'为虚线,'-.'为点画线,即为一个点一个线交替,
':'为点线,即为全部由点构成

plt.show()函数

plt.show()函数比较简单,即为呈现所有的figure的图像。一般我们绘制出图片之后即可进行plt.show()调用之后进行可视化呈现。

plt.legend()函数

主要是运用调用pyplot函数的图例进行,我们这里理解的图例为如下图所示,简单应用如下,而且loc默认会选择最合适的位置进行放置。

x = np.random.randn(10)*10
y = np.random.randn(10)*10
plt.figure(num=1, figsize=(4,4))
plt.plot(x)
plt.plot(y,'r-^')
plt.legend(['one','two']) # 这里参考具体当前figure里面有几条线就用几个图例
plt.show()

常见具体参数如下

  • plt.legend(loc='upper center') 这里的uppe是偏上方的意思,即为一般lower为偏下方,具体如下所示。一般默认是用0,即为选择最优的位置放置。

0: ‘best' 1: ‘upper right' 2: ‘upper left' 3: ‘lower left'
4: ‘lower right' 5: ‘right' 6: ‘center left' 7: ‘center right'
8: ‘lower center' 9: ‘upper center' 10: ‘center'
  • plt.legend(fontsize=int|float)为设置图例大小的数值

  • plt.legend(frameon=False)为去除图例边框,即为修改图例边框。

  • plt.legend(edgecolor='blue')设置图例边框颜色。

  • plt.legend(facecolor='blue')设置图例背景颜色,如果没有边框即为参数无效。

plt.axis()函数

plt.axis([xmin, xmax, ymin, ymax])参数具体可以放置四个数值,即为xmin,xmax,ymin,ymax,即为横纵坐标的最小值和最大值。

其他参数具体如下。

  • 'on'显示坐标轴和坐标轴标签,

  • 'off'为不显示坐标轴和坐标轴标签

具体效果如下图所示。很明显能够看出差距,而且我们可以设置具体

设置坐标轴刻度函数(xlim(), ylim()函数)

xlim(0,10)使得x坐标轴从0-10范围内可视化。

ylim(0,10)使得y坐标轴从0-10范围内可视化。

设置坐标轴的label(xlabel(), ylabel())函数

一般比较常用的是设置label的标签,即为我们在x,y轴上看到的说明或者汉字,常见的有以下参数,value,fontdict,loc。

  • loc:'left','right', 'center'

  • value:需要的文字

  • fontdict:设置字典样式,具体例子为如下fontdict={'fontsize': 10, 'fontstyle': 'oblique', 'color': 'red', 'fontfamily': 'fantasy'}

mathplotlib设置中文,负号正常显示

plt.rcParams['font.sans-serif'] = ['SimHei']  # 可以正常显示中文
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.tight_layout() # 为了正常显示一些图表被遮盖或者不完全显示的问题

mathplotlib自定义坐标轴间隔

from matplotlib.pyplot import MultipleLocator
figure = plt.figure()
ax = figure.add_suplot(221)
number = 0.3 # 这里的话适用于所有的坐标轴间隔,我这里设置默认为10
x_major_locator=MultipleLocator(number)
# matplotlib 关于使用 MultipleLocator 自定义刻度间隔
ax.xaxis.set_major_locator(x_major_locator) # 这两个为设置坐标轴的间隔是否,而且为自己手动调整,需要导入MultipleLocator

在figure和ax对象加入标题titile

plt.title('xxx')
ax.set_title('xxx')

参考

Matplotlib中的plt和ax画图的区别

matplotlib.pyplot.plot()参数详解

https://blog.csdn.net/helunqu2017/article/details/78659490

https://www.cnblogs.com/lfri/p/12248629.html

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

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

相关文章

注意力机制中Q和K相乘的意义是什么?为什么Q和K相乘就可以得到它们之间的相似性/权重矩阵呢?

为什么query和key相乘就能得到学生和教师的相似度呢&#xff1f;它的内部原理是什么? 在注意力机制中&#xff0c;query 和 key 相乘得到的相似度其实是通过计算两个向量之间的点积来实现的。具体而言&#xff0c;我们将 query 和 key 进行点积运算后【这里的点积运算可以看作…

从C出发 23 --- 函数专题练习

A&#xff1a;我们可以将 main 理解为操作系统调用的函数&#xff0c;操作系统运行一个应用程序时&#xff0c;就去调用这个应用程序里面的main函数 B: 函数中只能定义变量&#xff0c;定义的变量叫局部变量 C: 从操作系统的角度来看 C 并不一定正确&#xff0c;因为从技术角…

Cadence OrCAD Capture 层次化电路设计展开的方法

&#x1f3e1;《总目录》   &#x1f3e1;《宝典目录》   &#x1f3e1;《上级目录》 目录1&#xff0c;概述2&#xff0c;展开方法3&#xff0c;总结B站关注“硬小二”浏览更多演示视频 1&#xff0c;概述 典型的层次化设计是指顶层模块中&#xff0c;调用1个电路模块超过…

Java中的并发容器

Java 中的 并发容器 1.List 类 list类 线程安全的主要有 Vector 与 CopyOnWriteArrayList a). Vector Vector 相当于在 原有 ArrayList类的基础上将所有方法 变成同步方法 同样的操作还有 Collections.synchronizedList&#xff08;&#xff09; 方法&#xff0c;将原有Lis…

自训练Self-Training学习总结

一、自训练&#xff08;Self-training&#xff09; Self-training是最简单的半监督方法之一&#xff0c;其主要思想是找到一种方法&#xff0c;用未标记的数据集来扩充已标记的数据集。算法流程如下&#xff1a; 首先&#xff0c;利用已标记的数据来训练一个好的模型&#xf…

ch04-损失优化

ch04-损失优化0.引言1.权值初始化1.1. 梯度消失与爆炸1.2. Xavier 初始化1.3. Kaiming 初始化1.4. 常用的权值始化方法1.5. nn.init.calculate_gain1.6. 总结2.损失函数 (一)2.1. 损失函数的概念2.2. 交叉熵损失函数 nn.CrossEntropyLoss2.3. NLL/BCE/BCEWithLogits Loss2.4. 总…

什么原因导致了儿童自闭症?跟父母养育有关吗?

导致儿童自闭症的原因是什么&#xff1f;这和父母的抚养有关吗&#xff1f;学习教育孩子的方法&#xff0c;让孩子快乐健康地成长&#xff0c;是家庭和孩子生活中的一件重要事情。不良的环境和错误的教育会导致儿童自闭症&#xff0c;这是真的吗&#xff1f;自闭症&#xff0c;…

1、vscode搭建C++开发环境及一些配置文件的含义

文章目录一、vscode搭建开发环境1、下载和配置MinGW-w64 编译器套件2、安装到电脑中3、配置环境变量4、测试是否安装成功5、vscode上安装C/C插件二 、配置编译环境时各个文件的含义1、task.json&#xff1a;此文件告诉VS代码如何构建&#xff08;编译&#xff09;程序&#xff…

如何利用 IP 归属地查询 API 精准锁定用户位置

引言 在互联网时代&#xff0c;IP 地址扮演着非常重要的角色&#xff0c;它可以帮助我们追踪网站访问者、优化网络服务等等。而 IP 归属地则更进一步&#xff0c;它可以帮助我们精确地定位 IP 地址所在的地理位置&#xff0c;为数据分析、网络安全、市场调研等领域提供了极大的…

「业务架构」需求工程——需求验证(第4部分)

确保规定要求满足客户需求的过程。需求验证它是一个确保特定需求满足客户需求的过程。它关心的是找到需求中的问题。当这些问题在后期发现时&#xff0c;或者在系统投入使用后&#xff0c;这些问题会导致大量的返工成本。通过系统变更来修复需求问题的成本通常比修复设计或代码…

如何选择 O2OA (翱途) 开发平台的部署架构?

O2OA (翱途) 开发平台 [下称 O2OA 开发平台或者 O2OA] 支持公有云&#xff0c;私有云和混合云部署&#xff0c;也支持复杂的网络结构下的分布式部署。本篇主要介绍 O2OA (翱途) 开发平台支持的部署环境以及常用的集群部署架构。 软硬件环境说明 支持的云化平台&#xff1a; …

微信小程序-组件化

微信小程序-组件化 自定义组件 业务描述&#xff1a;代码中有多处需要引用同一段代码&#xff0c;需要把他封装成一个组件 流程 在根目录创建components用于存放通用组件在创建组件文件夹选择新建components 会自动生成4个文件json文件 会出现"component": true,…

Talk预告 | 浙江大学乔硕斐:语言模型提示推理综述

本期为TechBeat人工智能社区第480期线上Talk&#xff01; 北京时间3月9日(周四)20:00&#xff0c;浙江大学计算机科学与技术硕士——乔硕斐的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “语言模型提示推理综述 ”&#xff0c;届时将分享对语言…

知识点学习登记备份信息

知识点记录 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ovilnIi-1681441105895)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211228090433836.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上…

计算机网络 实验三

⭐计网实验专栏&#xff0c;欢迎订阅与关注&#xff01; ★观前提示&#xff1a;本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求&#xff0c;因此以下内容建议仅做思路参考。 一、实验目的 理解路由器转发分组的机制。 理解路由表的作用、基本结构。 掌握静态路…

Redis常见命令

Redis是典型的key-value数据库&#xff0c;key一般是字符串&#xff0c;而value包含很多不同的数据类型&#xff1a;1. Redis通用命令 通用指令是部分数据类型的&#xff0c;都可以使用的指令&#xff0c;常见的有&#xff1a; - KEYS&#xff1a;查看符合模板的所有key- KEYS…

cm-14.1 Android系统启动过程分析(2)- init进程的启动之前的那些事(偏嵌入式方向)

声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。本文参考了一些书籍的若干章节本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译…

Golang每日一练(leetDay0038) 二叉树专题(7)

目录 112. 路径总和 Path Sum &#x1f31f; 113. 路径总和 II Path Sum II &#x1f31f;&#x1f31f; 114. 二叉树展开为链表 Flatten Binary Tree to Linked-list &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 …

Nacos作为注册中心和配置中心

Cloud依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><sco…

圣戈班Saint-Gobain EDI需求分析

圣戈班Saint-Gobain&#xff08;以下简称&#xff1a;圣戈班&#xff09;是一家总部位于法国的跨国公司&#xff0c;成立于1665年。它是全球领先的建筑和高性能材料解决方案提供商之一&#xff0c;产品包括玻璃、陶瓷、管道、密封材料等&#xff0c;在欧洲、北美、亚洲和南美等…