3.1 掌握绘图基础语法与常用参数

news2024/11/17 15:36:17

3.1 掌握绘图基础语法与常用参数

  • 3.1.1 掌握pyplot基础语法
    • 1.创建画布与创建子图
    • 2.添加画布内容
    • 3.保存与展示图形
  • 3.1.2 设置pyplot的动态rc参数
    • 线条常用的rc参数

Matplotlib库介绍
Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表,可根据数据集(DataFrame,Series)自行定义x,y轴,绘制图形(线形图,柱状图,直方图,密度图,散布图等等),能够满足大部分需要。
Matplotlib最早是为了可视化癫痫病人的脑皮层电图相关的信号而研发,因为在函数的设计上参考了MATLAB,所以叫做Matplotlib。
官方文档: https://matplotlib.org/
Matplotlib中最基础的模块是pyplot。

3.1.1 掌握pyplot基础语法

大部分的pyplot图形绘制都遵循一个流程,使用这个流程可以完成大部分图形的绘制。pyplot基本绘图流程主要分为3个部分,如下图。
在这里插入图片描述

1.创建画布与创建子图

第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
在这里插入图片描述

2.添加画布内容

第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后
在这里插入图片描述
图参数说明
在这里插入图片描述

3.保存与展示图形

第三部分主要用于保存和显示图形。
在这里插入图片描述

# 3.1 掌握绘图基础语法与常用参数
# 3.1.1 掌握pyplot基础语法
## 1、pyplot中的基础绘图语法
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0, 1.1, 0.01)
# print(data)
plt.title('lines') # 添加标题
plt.xlabel('x')  # 添加x轴的名字
plt.ylabel('y')  # 添加y轴名字
plt.xlim((0,1))  # 确定x轴范围
plt.ylim((0,1))  # 确定y轴范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1])  #规定x轴刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1])  #规定y轴刻度
plt.plot(data, data**2) # 添加y=x^2曲线
plt.plot(data, data**4) # 添加y=x^4曲线
plt.legend(['y=x^2', 'y=x^4'])  # 指定图例
plt.savefig("F:/test/pic.png")   # 保存
plt.show()

在这里插入图片描述

## 2、包含子图绘制的基础语法
import numpy as np
import matplotlib.pyplot as plt
rad = np.arange(0,np.pi*2, 0.01)
# 第一幅子图
p1 = plt.figure(figsize = (8,6),dpi=80)  # 确定画布大小
ax1 = p1.add_subplot(2,1,1)  # 创建一个2行1列的子图,并开始绘制第一个图

plt.title('lines') # 添加标题
plt.xlabel('x')  # 添加x轴的名字
plt.ylabel('y')  # 添加y轴名字
plt.xlim((0,1))  # 确定x轴范围
plt.ylim((0,1))  # 确定y轴范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1])  #规定x轴刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1])  #规定y轴刻度
plt.plot(rad, rad**2) # 添加y=x^2曲线
plt.plot(rad, rad**4) # 添加y=x^4曲线
plt.legend(['y=x^2', 'y=x^4'])  # 指定图例

# 第二幅子图
ax2 = p1.add_subplot(2,1,2)
plt.title('sin/cos') # 添加标题
plt.xlabel('rad')  # 添加x轴的名字
plt.ylabel('value')  # 添加y轴名字
plt.xlim((0,np.pi*2))  # 确定x轴范围
plt.ylim((-1,1))  # 确定y轴范围
plt.xticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2])  #规定x轴刻度
plt.yticks([-1, -0.5, 0, 0.5, 1])  #规定y轴刻度
plt.plot(rad, np.sin(rad)) # 添加y=x^2曲线
plt.plot(rad, np.cos(rad)) # 添加y=x^4曲线
plt.legend(['sin', 'cos'])  # 指定图例

plt.savefig("F:/test/pic2.png")   # 保存
plt.show()

在这里插入图片描述

3.1.2 设置pyplot的动态rc参数

由于默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数。
plt.rcParams[‘font.sans-serif’] = ‘SimHei’ # 设置中文显示
plt.rcParams[‘axes.unicode_minus’] = False

除了设置线条和字体的rc参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等rc参数。具体参数与取值可以参考官方文档。

线条常用的rc参数

在这里插入图片描述
lines.linestyle参数取值及意义
在这里插入图片描述
lines.marker参数取值及意义
在这里插入图片描述

# 3.1.2 设置pyplot的动态rc参数
# 原图
import matplotlib.pyplot as plt
x = np.linspace(0, 4*np.pi)  # 生成x轴数据
y = np.sin(x)  # 生成y轴数据
plt.plot(x,y)
plt.title("y=sinx")
plt.show()

在这里插入图片描述

# 修改rc参数后
plt.rcParams['lines.linestyle'] = '--'  # 线条样式
plt.rcParams['lines.linewidth'] = 2  # 线条宽度
plt.rcParams['lines.marker'] = 'o'  # 线条上点的形状
plt.rcParams['lines.markersize'] = 5  # 点的大小
plt.plot(x,y)
plt.title("y=sinx")
plt.show()

在这里插入图片描述

# 修改rc参数显示中文标题
plt.rcParams['font.sans-serif'] = 'SimHei'  # 线条样式
plt.rcParams['axes.unicode_minus'] = False   # 设置正常显示符号
plt.plot(x,y)
plt.title("sinx曲线")
plt.show()

在这里插入图片描述

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

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

相关文章

实验二十、压控电压源二阶 LPF 幅频特性的研究

一、题目 研究压控电压源二阶低通滤波电路品质因数 Q Q Q 对频率特性的影响。 二、仿真电路 电路如图1所示。集成运放采用 LM324AJ,其电源电压为 15V。 图 1 压控电压源二阶低通滤波电路幅频特性的测试 图1\,\,压控电压源二阶低通滤波电路幅频特性的测试 图1压控…

记录一次重装系统配置工作环境

128G固态换大硬盘,偷懒不想重装系统,利用diskgenius迁移系统,热迁移和PE都没能成功迁移,还不小心删掉了机械盘的所有分区。利用diskgenius搜索分区,恢复文件,勉强把一些数据文件保存下来了。但是软件又得重…

DOM是什么(DOM的节点类型)

学到DOM时,看到关于文档(结构树)、节点(node)、和DOM提供的一些方法获取(找到)所需的节点、还有DOM属性,我很混乱,我无法弄清节点的关系层级属性和方法的关系&#xff0c…

SQL常用语句总结

一,简介 1.1 数据库是用来存放数据的,对数据库的操作需要用到SQL语句 1.2 数据库种类有也非常多: 关系型数据库: Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、SQLite 非关系型数据库: NoSql、Cl…

Vue Cli 之 环境变量和模式

一、环境变量 ​ 我们在使用 Vue-cli 创建的Vue项目中,可以在构建和运行时为项目设置环境变量,这些环境变量会根据环境(模式)的不同,而自动注入到项目中,也就是说我们可以根据环境不同,设置不同…

二进制单节点搭建 Kubernetes v1.20

目录 第一章.操作系统初始化配置 1.1.安装环境部署 1.2.部署 docker引擎 第二章.部署 etcd 集群 2.1.ETCD简述 2.2.准备签发证书环境 在 master01 节点上操作 2.3. 生成Etcd证书​​​​​​​ 2.4.在 node01 节点上操作 在 node02 节点上操作 2.5.部署 Master 组件…

SpringBoot ( 四 ) 接值

2.5.接值 通过方法的参数来接收请求传来值 请求时传值的方式有三种方式 : URL?namevalueform表单Ajax 异步传值 接收传来的值有三类 : 单一值对象数组 2.5.0.传值 2.5.0.1.URL?传值 URL?标识1值1&标识2值2 URL后面使用 ? 连接参数, 每组参数使用 连接标识与值, 多…

10.过滤器

过滤器是做文本格式化的,只能用在 插值表达式 与 v-bind 上,在vue3中已经被弃用了,这里我简单记录一下并写一下在vue3的替代方法 目录 1 基本使用 1.1 vue2中的写法 1.2 vue3的替代 2 私有过滤器与全局过滤器 2.1 vue2的写法 2.2…

shell脚本----数组

文章目录 一、数组定义的方法二、数组的操作2.1 数组的输出2.2 删除数组2.3 数组切片2.4 数组的替换2.5 判断数组中是否有空值2.6 追加函数2.7 向函数传入参数 一、数组定义的方法 数组定义的规则 数组中的每个元素分分隔符一定为空格隔开每个元素都拥有与其对应的下标&#…

Kubesphere流水线实现蓝绿发布

Kubesphere流水线实现蓝绿发布 1. Gitlab仓库准备 1.1 创建仓库 新建空白项目,名字随便取 greenweb复制克隆地址 http://192.168.31.199/deploy/greenweb.git1.2 初始化并上传代码 克隆并初始化代码仓库 mkdir git cd git git clone http://192.168.31.199/deploy/green…

AIMD 为什么收敛(tcp reno/cubic 为什么好)

TCP 拥塞控制目标是缓解并解除网络拥塞,让所有流量公平共享带宽,合在一起就是公平收敛。 AIMD(几乎所有与拥塞控制相关的协议或算法都有 AIMD 的影子,包括 RoCE,BBRv2) 为什么收敛?我一般会给出下面的老图:…

1区(TOP)极速送审,5月SCI/SSCI/EI刊源表已更新,

2023年5月SCI/SSCI/EI期刊目录更新 5月我处新增多本1-2区高分区新刊,包括计算机、医学、环境、化学、材料、生物、工程、社科领域,新刊版面极速送审~ 以下是本月重点期刊推荐,可作参考: 计算机类新刊: 1区计算机科…

钓鱼邮件演练项目实战

1、 使用 setoolkit 克隆站点 Setoolkit 是一个万能的社工工具(社会工程学工具集合) ┌──(root Cwillchris)-[~] └─# setoolkit 翻译成中文: 从菜单中选择: 1)社会工程攻击 2)渗透测试(快速通道) 3)第三方模块 4)更新社会工程师工具包 5)更新 SET 配置…

使用 spring 的 IoC 的实现账户的CRUD(2)双层实现+注解开发

在http://t.csdn.cn/yucl4的基础上进行注解开发 【分析】 xml文件其中spring容器中的bean,因此通过注解把这些放到容器中即可 component:相当xml中的bean的id: 如果不指定 value 属性,默认 bean 的 id 是当前类的类名, 首字母小写。 Controller Service Reposito…

计算机毕业论文选题推荐|软件工程|系列二

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)门窗账务管理系…

C++——类和对象(6)

作者:几冬雪来 时间:2023年5月10日 内容:C类和对象内容讲解 目录 前言: 1.取地址操作符重载: 2.构造函数(进阶): 1.初始化列表: 2.static成员: 结尾…

数据可视化工具 - ECharts饼形图的编写

1 饼形图 1年龄分布模块制作 1.1 官网找到类似实例&#xff0c; 适当分析&#xff0c;并且引入到HTML页面中 <!DOCTYPE html> <html> <head><meta charset"utf-8"/><title>ECharts</title><!-- 引入刚刚下载的 ECharts 文件…

Android WebRTC+SRS/ZLM视频通话(4):Android使用WebRTC推流SRS/ZLMediaKit

Android WebRTCSRS/ZLM视频通话&#xff08;4&#xff09;&#xff1a;Android使用WebRTC推流SRS/ZLMediaKit 来自奔三人员的焦虑日志 接着上一章内容&#xff0c;继续来记录Android是如何使用WebRTC往SRS或ZLMediaKit进行推流。想要在Android设备上实现高质量的实时流媒体推送…

VirtualBox+Vagrant

1.下载VirtualBox 1.下载 VirtualBox官网下载 下载过程无特别注意事项&#xff0c;注意调整到非 C 盘位置即可&#xff0c;其他部分皆为默认设置 2.修改虚拟电脑存储位置 1.将C:\Users\用户名下的VirtualBox VMs文件夹复制到自定义目标文件夹中 2.打开VirtualBox,在全局设置…

嵌入式TCP/IP协议栈-LwIP

文章目录 LWIP是什么基础知识OSI七层模型TCP/IP五层模型LwIP的模型常见协议ARP协议ICMP协议DHCP协议DNS协议 LwIP APISocket大端模式与小端模式地址字节序IP地址转换 网络并发 LWIP是什么 LWIP是一个轻量级的TCP/IP协议栈&#xff0c;其全称为Lightweight IP&#xff0c;它专门…