Matplotlib画图相关代码

news2024/12/22 20:01:36

绘制不同类型的线条 

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3])
y = np.array([2, 4, 6])

# 不同线型的示例
plt.plot(y, marker='*', linestyle='-')   # 实线
plt.plot(y + 1, marker='o', linestyle='--')  # 虚线
plt.plot(y + 2, marker='x', linestyle='-.')  # 点划线
plt.plot(y + 3, marker='d', linestyle=':')   # 点线

# 自定义线型
plt.plot(y + 4, marker='s', linestyle=(0, (5, 10)))  # 自定义:5个单位实线,10个单位空格

plt.show()

添加中文

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False   # 用来正常显示负号

创建多个子图

import matplotlib.pyplot as plt
import numpy as np

# 生成从 0 到 10 的 100 个均匀间隔的数值,用于 x 轴
x = np.linspace(0, 10, 100)

# 创建一个新的图形对象,设置图形的大小为 10x8 英寸
plt.figure(figsize=(10, 8))

# 创建第一个子图,设置为 2 行 2 列的网格中的第 1 个子图
plt.subplot(2, 2, 1)  # 参数解释:2 行,2 列,第 1 个位置
plt.plot(x, np.sin(x))  # 绘制 sin(x) 函数的曲线
plt.title('Sin(x)')  # 设置第一个子图的标题为 "Sin(x)"

# 创建第二个子图,设置为 2 行 2 列的网格中的第 2 个子图
plt.subplot(2, 2, 2)  # 参数解释:2 行,2 列,第 2 个位置
plt.plot(x, np.cos(x))  # 绘制 cos(x) 函数的曲线
plt.title('Cos(x)')  # 设置第二个子图的标题为 "Cos(x)"

# 创建第三个子图,设置为 2 行 2 列的网格中的第 3 个子图
plt.subplot(2, 2, 3)  # 参数解释:2 行,2 列,第 3 个位置
plt.plot(x, np.tan(x))  # 绘制 tan(x) 函数的曲线
plt.title('Tan(x)')  # 设置第三个子图的标题为 "Tan(x)"

# 创建第四个子图,设置为 2 行 2 列的网格中的第 4 个子图
plt.subplot(2, 2, 4)  # 参数解释:2 行,2 列,第 4 个位置
plt.plot(x, -np.sin(x))  # 绘制 -sin(x) 函数的曲线
plt.title('-Sin(x)')  # 设置第四个子图的标题为 "-Sin(x)"

# 自动调整子图之间的空隙,避免标题、轴标签等元素重叠
plt.tight_layout()

# 显示图形
plt.show()
import matplotlib.pyplot as plt
import numpy as np

# 设置字体和负号显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False   # 用来正常显示负号

# 定义第一个数据集
x = np.array([1, 2, 3])
y = np.array([3, 5, 7])

# 创建 1 行 2 列的子图布局,并选择第一个子图
plt.subplot(1, 2, 1)
plt.title('line1')  # 设置第一个子图的标题
plt.xlabel('中文')   # 设置 x 轴标签,支持中文
plt.ylabel('值')     # 设置 y 轴标签
plt.grid(True)       # 显示网格
plt.plot(x, y, linestyle='dotted')  # 绘制点线样式的曲线

# 定义第二个数据集
x = np.array([1, 2, 3])
y = np.array([3, 5, 70])

# 创建 1 行 2 列的子图布局,并选择第二个子图
plt.subplot(1, 2, 2)
plt.plot(x, y, marker='o')  # 绘制带有圆形标记的曲线
plt.title('line2')          # 设置第二个子图的标题
plt.xlabel('x')             # 设置 x 轴标签
plt.ylabel('y')             # 设置 y 轴标签
plt.grid(True)              # 显示网格

# 自动调整子图之间的空隙,避免重叠
plt.tight_layout()

# 显示图形
plt.show()
import matplotlib.pyplot as plt
import numpy as np

# 生成 x 的数值,从 0 到 10,包含 100 个均匀间隔的点
x = np.linspace(0, 10, 100)

# 计算 y1 为 sin(x) 函数的值
y1 = np.sin(x)

# 计算 y2 为 cos(x) 函数的值
y2 = np.cos(x)

# 创建一个新的图形对象,设置图形大小为 10x6 英寸
plt.figure(figsize=(10, 6))

# 使用 subplot2grid 创建子图
# (2, 2) 定义一个 2 行 2 列的网格布局
# (0, 0) 指定子图从第 1 行第 1 列开始
# colspan=2 表示该子图横跨两列
ax1 = plt.subplot2grid((2, 2), (0, 0), colspan=2)  # 占据顶部的两列位置

# 使用 subplot2grid 创建第二个子图
# (2, 2) 定义一个 2 行 2 列的网格布局
# (1, 0) 指定子图位于第 2 行第 1 列
ax2 = plt.subplot2grid((2, 2), (1, 0))  # 左下角的子图

# 使用 subplot2grid 创建第三个子图
# (2, 2) 定义一个 2 行 2 列的网格布局
# (1, 1) 指定子图位于第 2 行第 2 列
ax3 = plt.subplot2grid((2, 2), (1, 1))  # 右下角的子图

# 在第一个子图 ax1 中绘制 sin(x) 的曲线
ax1.plot(x, y1, label='Sin(x)')  # 绘制 sin(x) 曲线,并添加标签 'Sin(x)'
ax1.set_title('Sine Function')  # 设置第一个子图的标题
ax1.grid(True)  # 显示网格线
ax1.legend()  # 显示图例

# 在第二个子图 ax2 中绘制 cos(x) 的曲线
ax2.plot(x, y2, color='r', label='Cos(x)')  # 绘制 cos(x) 曲线,颜色为红色,标签为 'Cos(x)'
ax2.set_title('Cosine Function')  # 设置第二个子图的标题
ax2.grid(True)  # 显示网格线
ax2.legend()  # 显示图例

# 在第三个子图 ax3 中绘制 -sin(x) 的曲线
ax3.plot(x, -y1, linestyle='--', label='-Sin(x)')  # 绘制 -sin(x) 曲线,样式为虚线,标签为 '-Sin(x)'
ax3.set_title('Negative Sine Function')  # 设置第三个子图的标题
ax3.grid(True)  # 显示网格线
ax3.legend()  # 显示图例

# 自动调整子图之间的空隙,避免内容重叠
plt.tight_layout()

# 显示所有绘制的图形
plt.show()

 x = np.linspace(0, 10, 100)用于生成随机均匀的数。

import matplotlib.pyplot as plt
import numpy as np

# 生成 x 轴的数值,从 0 到 10,共 100 个等间隔的点
x = np.linspace(0, 10, 100)

# 计算 y 轴的数值,这里是 sin(x) 函数的值
y = np.sin(x)

# 绘制 sin(x) 曲线
plt.plot(x, y, label='Sin(x)')

# 设置图形标题和标签
plt.title('Sine Function Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 显示图例
plt.legend()

# 显示网格线,便于观察数据
plt.grid(True)

# 显示绘图
plt.show()
import matplotlib.pyplot as plt
import numpy as np

# 生成 x 的数值,从 0 到 10,共 100 个等间隔的点
x = np.linspace(0, 10, 100)
y1 = x * x

# 设置图像大小,宽度为 12 英寸,高度为 8 英寸
plt.figure(figsize=(12, 8))

# 创建第一个子图,占据网格的 (0, 0) 位置,即第一行第一列
ax1 = plt.subplot2grid((2, 2), (0, 0))
ax1.plot(x, y1, label='function')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('x and y')
ax1.grid(True)

# 创建第二个子图,占据网格的 (0, 1) 位置,即第一行第二列
y2 = -y1
ax2 = plt.subplot2grid((2, 2), (0, 1))
ax2.plot(x, y2, label='function')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.set_title('x and -y')
ax2.grid(True)

# 创建第三个子图,占据网格的 (1, 0) 位置,并跨越两列
y3 = np.sin(x)
ax3 = plt.subplot2grid((2, 2), (1, 0), colspan=2)
ax3.plot(x, y3, label='sin(x)')
ax3.set_xlabel('x')
ax3.set_ylabel('sin(x)')
ax3.set_title('Sine Function')
ax3.grid(True)

# 自动调整子图之间的空隙,防止重叠
plt.tight_layout()

# 显示图形
plt.show()

  • plt.subplot2grid((2, 2), (0, 0)):创建一个子图在 2x2 的网格中,位于第一行第一列的位置。

  • plt.subplot2grid((2, 2), (0, 1)):创建另一个子图在同一行的第二列。

  • plt.subplot2grid((2, 2), (1, 0), colspan=2):创建一个子图占据第二行的所有列(跨两列),从而在底部形成一个宽的子图。

ax1 的常见用法

  • 设置标题ax1.set_title('Title') 用于设置该子图的标题。
  • 设置轴标签ax1.set_xlabel('x')ax1.set_ylabel('y') 用于设置 x 轴和 y 轴的标签。
  • 绘制数据ax1.plot(x, y)ax1 这个子图上绘制数据。
  • 显示网格线ax1.grid(True) 在该子图中显示网格线。
# 创建第一个子图,并将它的引用赋值给 ax1
ax1 = plt.subplot2grid((2, 2), (0, 0))
ax1.plot(x, y1, label='function')  # 在 ax1 子图上绘制数据
ax1.set_xlabel('x')                # 设置 x 轴标签
ax1.set_ylabel('y')                # 设置 y 轴标签
ax1.set_title('x and y')           # 设置标题
ax1.grid(True)                     # 显示网格线

在一幅图中绘制两种曲线 

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

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

相关文章

【IDEA配置Maven环境】

在IDEA欢迎界面 选择 IDEA中 Customize > ALLSettings > Build,Execution,Deployment > Build Tools > Maven

VirtualBox+Vagrant快速搭建Centos7系统【最新详细教程】

VirtualBoxVagrant快速搭建Centos7系统 📖1.安装VirtualBox✅下载VirtualBox✅安装 📖2.安装Vagrant✅下载Vagrant✅安装 📖3.搭建Centos7系✅初始化Vagrantfile文件生成✅启动Vagrantfile文件✅解决 vagrant up下载太慢的问题✅配置网络ip地…

从零开始的软件开发详解:数字药店系统源码与医保购药APP

很多小伙伴们疑问,医保购药APP是如何开发的,今天我将从零数字药店系统源码开始为大家提供一条清晰的实现方案。 一、技术架构设计 在开发医保购药APP之前,首先需要明确技术架构。一般来说,APP的技术架构可以分为前端和后端。 1…

网络分段:您需要了解的一切

什么是网络分段?为什么它很重要? 在当今互联互通的世界中,网络分段已成为组织网络安全战略中不可或缺的一部分。随着网络威胁不断演变和变得更加复杂,保护网络免受潜在入侵并尽量减少攻击面变得至关重要。根据最近的研究&#xf…

C++ 进阶之路:非类型模板参数、模板特化与分离编译详解

目录 非类型模版参数 类型模板参数 非类型模板参数 非类型模板参数的使用 模板的特化 函数模板的特化 类模板的特化 全特化与偏特化 偏特化的其它情况 模板的分离编译 什么是分离编译 为什么要分离编译 为什么模板不能分离编译 普通的类和函数都是可以分离编译的…

数据定义语言CREATE的应用

新书速览|SQL Server 2022从入门到精通:视频教学超值版_sql server 2022 出版社-CSDN博客 《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) SQL Se…

相交链表 -------------应用

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…

2024上海工博会,正运动机器视觉运动控制一体机应用预览(三)

■展会名称: 第二十四届中国国际工业博览会(以下简称“上海工博会”) ■展会日期 2024年9月24日–28日 ■展馆地点 中国国家会展中心(上海) ■展位号 6.1H-E261 本次上海工博会,正运动技术将携高性…

微信小程序开发项目

微信小程序是一种轻量级的应用程序,无需下载即可使用,并且具有即用即走的特点。这种新型的应用程序正在改变人们的使用习惯,使得人们可以更加方便快捷地获取信息和服务。本文将详细介绍微信小程序的开发过程,包括开发前的准备、开…

9.3 Linux_文件I/O_相关函数

打开与关闭 1、打开文件 int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);返回值:成功返回文件描述符,失败返回EOF pathname:文件路径 flags:标志,其中O_RDO…

CUDA安装教程+显卡驱动安装

CUDA安装教程显卡驱动安装 新的ubuntu系统,需要重新安装显卡驱动,以及cuda,记录以下坑点: 先安装显卡 nvidia-smi输入后出现 首先知道自己的GPU型号,如RTX 4090 这里下载:https://www.nvidia.com/Down…

自动化学习2:pytest的高级用法(mark标记/fixture/hook)

一.mark的用法 概念:Pytest提供的mark标记,允许我们标记测试函数,测试类和整个模块。通过不同的标记实现不同的运行策略,如标记冒烟测试用例。 1.注册标记 可以在pytest.ini文件注册自定义标记 除了自己注册的标记外&#xff0…

网安新声 | 黎巴嫩BP机爆炸事件带来的安全新挑战与反思

网安加社区【网安新声】栏目,汇聚网络安全领域的权威专家与资深学者,紧跟当下热点安全事件、剖析前沿技术动态及政策导向,以专业视野和前瞻洞察,引领行业共同探讨并应对新挑战的策略与可行路径。 9月17日,黎巴嫩境内发…

一文学会 Java 8 的Predicates

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 在这份详细的指南中,您将了解 Java Predicates,这是 Java 8 中一个新颖且有用的特性。本文解释了 Java Predicates 是什么以及如何在各种情况下使用它们。 在这份详尽的指南中…

828华为云征文|Flexus X实例安装H5ai目录列表程序

828华为云征文|Flexus X实例安装H5ai目录列表程序 引言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 主要使用场景 二、购买Flexus云服务器X实例2.1 购买规格参考2.2 查看Flexus云服务器X实例状态 三、远程连接Flexus云服务器X实例3.1 重置密码3.2 本…

sleuth(micrometer)+zipkin 实现链路追踪

目录 sleuth 介绍 相关术语 Trace Span Annotation 使用 依赖 参考 Zipkin 介绍 使用 下载最新版并使用 客户端集成 参考 sleuth 介绍 Spring Cloud Sleuth 能够跟踪您的请求和消息,以便您可以将该通信与相应的日志条目相关联。 您还可以将跟踪信息…

saltstack高级用法

一、saltstack的高级用法 一、job管理 1、job简介 Jid:job id,格式为%Y%m%d%H%M%S%fmaster在下发指令消息时,会附带上产生的Jid,minion在接收到指令开始执行时,会在本地的cachedir(默认是/var/cache/salt/…

git add成功后忘记commit的文件丢了?

本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中,分支太多(基线分…

网络安全等级保护 | 规范企业网络系统安全使用 | 天锐股份助力等保制度落地

在当今数字化高速发展的时代,网络安全对于企业的重要性日益凸显。而近年来,数据泄露、网络攻击等安全事件频发,给企业和个人带来了前所未有的挑战。在这一背景下,网络安全等级保护制度(简称“等保”)作为国…

论文 | Reframing Instructional Prompts to GPTk’s Language

作者:Swaroop Mishra, Daniel Khashabi, Chitta Baral, Yejin Choi, Hannaneh Hajishirzi 论文摘要:语言模型 (LM) 更容易遵循哪些类型的指令提示? 我们通过进行广泛的实证分析来研究这个问题,这些分析阐明了成功指令提示的重要特…