matplotlib绘图初步

news2024/10/5 16:30:31

文章目录

    • 绘制曲线图
    • 完整流程
    • 图像属性

绘制曲线图

matplotlib是python中最常用的可视化库,提供了不同坐标系下的二十余种常用图像,并且提供了动态图像绘制的方法,可以满足科学计算中的绝大多数可视化需求。而在matplotlib中,绝大多数的常用函数都在pyplot模块中,为了便于行文,在后文中,用【plt】代替。

而在所有的绘图类型中,又以曲线图最为常用,在【plt】中,用plot来绘制曲线图。正常来说,在平面直角坐标系中绘制折线,至少需要 x , y x,y x,y两个坐标,即输入两组数据。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(100)
y = x**2

plt.plot(x,y)
plt.show()

在这里插入图片描述

如果plot函数只接受一组数据,则会默认自然数列为 x x x坐标,故而上述绘图代码可以更简单地写为下面的形式。

plt.plot(y)
plt.show()

完整流程

尽管两行代码便可完成曲线绘制,但这显然略去了诸多环节,一个完整的绘图流程则至少包含四行代码

fig = plt.figure("plot")
ax = fig.add_subplot()
ax.plot(x,y)
plt.show()

其中,fig是绘图窗口;ax是绘图坐标系;接下来在ax中绘制 x , y x,y x,y的曲线,最后调用plt.show,将我们绘制好的窗口弹出,这才是【plt】绘图的全部流程。

图像属性

尽管绘图逻辑十分简单,但【plt】提供了常用的绘图要素,比如线的宽窄、颜色、形态以及标记,通过下列参数来调控

参数简写功能
linestylels线型
linewidthlw线宽
marker标记形状
markersizems标记尺寸
markeredgewidthmew标记边缘线宽
markeredgecolormec标记颜色
markerfacecolormfc标记内部颜色

其中可选的线型和点型如下表所示

字符类型字符类型字符类型字符类型
‘-’实线‘–’虚线‘-.’虚点线‘:’点线
‘.’‘,’虚线
‘o’圆点‘*’星型点‘+’加号点‘x’乘号点
‘v’下三角点‘^’上三角点‘<’左三角点‘>’右三角点
‘1’下三叉点‘2’上三叉点‘3’左三叉点‘4’右三叉点
‘s’正方点‘p’五角点‘h’六边形1‘H’六边形2
‘D’实心菱形点‘d’瘦菱形点‘_’横线点

常见颜色可通过下表中的字符来设置

字符颜色字符颜色字符颜色
‘b’blue‘g’green‘r’red
‘c’cyan‘m’magenta‘y’yellow
‘k’black‘w’white

下面挑选几个做个演示

x = np.linspace(0, 3.14, 20)

Ls = ['-', '--', '-.', ':']
mks = ['s', 'p', 'h', 'H']
cs = ['r', 'g', 'b','c']
ys = [np.sin(x), np.cos(x), np.tan(x), np.sqrt(x)]
labels = ['sin', 'cos', 'tan', 'sqrt']

for i in range(4):
    plt.plot(x, ys[i], ls=Ls[i],
        marker=mks[i], ms=5,
        color=cs[i], label=labels[i])

plt.grid()
plt.legend()
plt.show()

上面的绘图代码中,除了规范了点、线特性,还通过plt.grid绘制了网格,以及用plt.legend绘制了图例。效果如下

在这里插入图片描述
考虑到线的类型、点的类型以及颜色类型都可以用字符来表示,所以【plt】支持奖这些类型合在一起,从而在绘图时可以更加便捷,所以将代码写成下面的形式,也可以得到和上图相同的结果

strs = ['rs-', 'gp--', 'bh-.', 'cH:']
for i in range(4):
    plt.plot(x, ys[i], strs[i], ms=5, label=labels[i])

plt.grid()
plt.legend()
plt.show()

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

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

相关文章

基于Redis限流(固定窗口、滑动窗口、漏桶、令牌桶)(肝货!!!)

近期redis复习的比较多&#xff0c;在限流这方面发现好像之前理解的限流算法有问题&#xff0c;索性花了一天“带薪摸鱼”时间肝了一天&#xff0c;有问题可以评论区探讨。 废话不多说&#xff0c;正片开始 目录 Maven固定窗口滑动窗口算法漏桶算法令牌桶算法 Maven 有些不用的…

[HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

【计网】TCP的三次握手四次挥手

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 三次握手&#xff08;Connection Establishment&#xff09; 四次挥手&#xff08;Connection Termination&#xff09; 结语 我…

Echarts与后台(mongoose)交互

Echarts引入地址可参考 echarts组件引入 <template><div><div id"main" style"width: 600px;height:400px;"></div></div> </template><script setup> import { onMounted, ref } from vue; import * as echa…

JavaScript 数组、遍历

数组 多维数组&#xff1a;数组里面嵌套 一层数组为二维数组。一维数组的使用频率是最高的。 如果数组访问越界会返回undefined。 数组遍历 数组方法Array.isArray() 这个方法可以去判定一个内容是否是数组。

32单片机基础:GPIO输出

目录 简介&#xff1a; GPIO输出的八种模式 STM32的GPIO工作方式 GPIO支持4种输入模式&#xff1a; GPIO支持4种输出模式&#xff1a; 浮空输入模式 上拉输入模式 下拉输入模式 模拟输入模式&#xff1a; 开漏输出模式&#xff1a;&#xff08;PMOS无效&#xff0c;就…

基于SpringBoot的气象数据监测分析大屏

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

简单聊聊如何零基础入门机器视觉

在这个充满科技奇迹的时代里&#xff0c;机器视觉像一面魔法镜&#xff0c;赋予机器以“视觉”&#xff0c;让它们能够理解和解释这个世界。对于热爱探索新知的大学生和研究生们来说&#xff0c;学习机器视觉不仅是开启未来科技大门的钥匙&#xff0c;更是一次激动人心的冒险之…

RisingWave最佳实践-利用Dynamic filters 和 Temporal filters 实现监控告警

心得的体会 刚过了年刚开工&#xff0c;闲暇之余调研了分布式SQL流处理数据库–RisingWave&#xff0c;本人是Flink&#xff08;包括FlinkSQL和Flink DataStream API&#xff09;的资深用户&#xff0c;但接触到RisingWave令我眼前一亮&#xff0c;并且拿我们生产上的监控告警…

备战蓝桥杯————双指针技巧巧解数组1

利用双指针技巧来解决七道与数组相关的题目。 两数之和 II - 输入有序数组&#xff1a; 给定一个按升序排列的数组&#xff0c;找到两个数使它们的和等于目标值。可以使用双指针技巧&#xff0c;在数组两端设置左右指针&#xff0c;根据两数之和与目标值的大小关系移动指针。 …

动态规划--持续更新篇

将数字变成0的操作次数 1.题目 2.思路 在numberOfSteps函数中&#xff0c;首先设置f[0]为0&#xff0c;因为0已经是0了&#xff0c;不需要任何步骤。然后&#xff0c;使用一个for循环从1迭代到输入的整数num。对于每个整数i&#xff0c;如果i是奇数&#xff0c;则将f[i]设置为…

uniapp离线打包(使用Android studio打包)

一、准备工作 安装HbuilderX&#xff0c;记住版本号下载对应HbuilderX版本的Android离线SDK&#xff0c;如我使用3.6.18版本打包&#xff0c;则对应应下载3.6.18版本的SDK&#xff08;官网不提供旧版本的SDK&#xff0c;有些需要自己找&#xff09;官网下载地址&#xff1a;ht…

目标检测-Transformer-ViT和DETR

文章目录 前言一、ViT应用和结论结构及创新点 二、DETR应用和结论结构及创新点 总结 前言 随着Transformer爆火以来&#xff0c;NLP领域迎来了大模型时代&#xff0c;成为AI目前最先进和火爆的领域&#xff0c;介于Transformer的先进性&#xff0c;基于Transformer架构的CV模型…

QGIS编译(跨平台编译)之七十:【Windows编译错误处理】找不到vector_tile.pb.h、vector_tile.pb.cc

文章目录 一、错误描述二、错误原因分析三、错误处理一、错误描述 ①无法打开源文件“vector_tile.pb.h” ②无法打开包含文件:“vector_tile.pb.h”:No Such file or directory ③无法打开源文件:“vector_tile.pb.cc”:No Such file or directory 二、错误原因分析 qgis\…

MFC 配置Halcon

1.新建一个MFC 工程&#xff0c;Halcon 为64位&#xff0c;所以先将工程改为x64 > VC 目录设置包含目录和库目录 包含目录 库目录 c/c ->常规 链接器 ->常规 > 链接器输入 在窗口中添加头文件 #include "HalconCpp.h" #include "Halcon.h"…

Oracle迁移到mysql-表结构的坑

1.mysql中id自增字段必须是整数类型 id BIGINT AUTO_INCREMENT not null, 2.VARCHAR2改为VARCHAR 3.NUMBER(16)改为decimal(16,0) 4.date改为datetime 5.mysql范围分区必须int格式&#xff0c;不能list类型 ERROR 1697 (HY000): VALUES value for partition …

应急响应实战笔记03权限维持篇(3)

0x00 前言 攻击者在获取服务器权限后&#xff0c;会通过一些技巧来隐藏自己的踪迹和后门文件&#xff0c;本文介绍Linux下的几种隐藏技术。 0x01 隐藏文件 Linux 下创建一个隐藏文件&#xff1a;touch .test.txt touch 命令可以创建一个文件&#xff0c;文件名前面加一个 点…

使用pygame 编写俄罗斯方块游戏

项目地址&#xff1a;https://gitee.com/wyu_001/mypygame/tree/master/game 可执行程序 这个游戏主要使用pygame库编写俄罗斯方块游戏&#xff0c;demo主要演示了pygame开发游戏的主要设计方法和实现代码 下面是游戏界面截图 游戏主界面&#xff1a; 直接上代码&#xff1a…

RabbitMQ 部署方式选择

部署模式 RabbitMQ支持多种部署模式&#xff0c;可以根据应用的需求和规模选择适合的模式。以下是一些常见的RabbitMQ部署模式&#xff1a; 单节点模式&#xff1a; 最简单的部署方式&#xff0c;所有的RabbitMQ组件&#xff08;消息存储、交换机、队列等&#xff09;都运行在…

Redis可视化工具——RedisInsight

文章目录 1. 下载2. 安装3. RedisInsight 添加 Redis 数据库4. RedisInsight 使用 RedisInsight 是 Redis 官方出品的可视化管理工具&#xff0c;支持 String、Hash、Set、List、JSON 等多种数据类型的管理&#xff0c;同时集成了 RedisCli&#xff0c;可进行终端交互。 1. 下载…