Matplotlib_概述_绘制图象

⛳绘制基础

  • 在使用 Matplotlib 绘制图形时,其中有两个最为常用的场景。一个是画点,一个是画线。 pyplot 基本方法的使用如下表所示
方法名说明
title()设置图表的名称
xlabel()设置 x 轴名称
ylabel()设置 y 轴名称
xticks(x, ticks, rotation)设置 x 轴的刻度,rotation 为刻度标签的旋转角度
yticks()设置 y 轴的刻度
plot()绘制线性图表
show()显示图表
legend()显示图例
text(x, y, text)显示每个数据点的值,x、y 为值的位置
figure(name, figsize=(w, h), dpi=n)设置图片的名称、大小和分辨率

⛳绘制直线

  • 在使用 Matplotlib 绘制 线性图时,其中最简单的是 绘制线图。在下面的实例代 码中,使用 Matplotlib 绘制 了一个简单的直线。具体实 现过程如下:
    • (1) 导入模块 pyplot,并给它指定别名 plt,以免反复输入 pyplot。在模块 pyplot 中包含很多用于生产图表的函数。
    • (2) 将绘制的直线坐标传递给函数 plot()。
    • (3) 通过函数 plt.show()打开 Matplotlib 查看器,显示绘制的图形。
  • 绘制折线只需要将x和y的参数设置为列表元组等序列对象,x和y序列中的每个相应值对应一个点

🧩设置标签文字和线条粗细

import matplotlib.pyplot as plt

# 绘制折线图并设置样式  
datas = [1, 2, 3, 4, 5]  
squares = [1, 4, 9, 16, 25]  
plt.plot(datas, squares, linewidth=5) # 设置线条宽度  
# 设置图表标题, 并在坐标轴上添加标签  
plt.title('', fontsize=24)  
plt.xlabel('datas', fontsize=14)  
plt.ylabel('squares', fontsize=14)  
plt.rcParams['font.sans-serif'] = ['SimHei'] # matplotlib默认不支持中文标签,所以此行的目的是用来正常显示中文标签  
plt.show()

Matplotlib 默认情况不支持中文(使用中文可能会出现乱码问题),可以使用以下简单的方法来解决:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

⛳绘制正弦曲线和余弦曲线

  • 使用 plt 函数绘制任何曲线的第一步都是生成若干个坐标点(x,y),理论上坐标点是越 多越好。本例取 0 到 10 之间 100 个等差数作为 x 的坐标,然后将这 100 个 x 坐标值一起传 入 Numpy 的 sin 和 cos 函数,就会得到 100 个 y 坐标值,最后就可以使用 plot 函数绘制正 弦曲线和余弦曲线。
# coding: utf-8  
  
import matplotlib.pyplot as plt  
import numpy as np  
  
# 绘制sin和cos曲线  
# 生成x的坐标(0-10的100个等差数列)  
plt.figure('sin-cos', figsize=(10, 10))  
x = np.linspace(0, 10, 200) # 生成将1-10(包含10)平均分为200份后的等差数列  
print(len(x))  
sin_y = np.sin(x)  
# 绘制正弦曲线  
plt.plot(x, sin_y)  
# 绘制余弦曲线  
cos_y = np.cos(x)  
plt.plot(x, cos_y)  
plt.show()

如果想绘制到两张画布中,可以调用 subplot()函数将画布分区。

在这里插入图片描述|200

⛳subplot()函数将画布分区

# subplot()函数将画布分区的使用  
# 将画布分为区域,将图画到画布的指定区域  
x = np.linspace(1, 10, 100)  
# 将画布分为2行2列, 将图画到画布的1区域  
plt.subplot(2, 2, 1)  
plt.plot(x, np.sin(x))  
plt.subplot(2, 2, 3) # 将图画到画布的3区域
plt.plot(x, np.cos(x))  
plt.show()

⛳绘制散点图

  • 使用 scatter 函数可以绘 制随机点,该函数需要接收 x 坐标和 y 坐标的序列。
import matplotlib.pyplot as plt  
import numpy as np

# 绘制散点图  
x = np.linspace(0, 10, 100) # 生成0到10中100个数的等差数列  
plt.scatter(x, np.sin(x))  
plt.show()

🎯实战1–绘制直线图_折线图

# coding: utf-8

import matplotlib.pyplot as plt
import numpy as np

# 直线图
# # 将(0, 1)点和(2, 4)连起来
# # plot默认画直线
# plt.plot([0, 2], [1, 4])
# plt.show()

# # 折线图
# x = [1, 2, 3, 4, 5]
# squares = [1, 4, 9, 16, 25]
# plt.plot(x, squares)
# plt.show()

# # 绘制折线图并设置样式
# datas = [1, 2, 3, 4, 5]
# squares = [1, 4, 9, 16, 25]
# plt.plot(datas, squares, linewidth=5)  # 设置线条宽度
# # 设置图表标题, 并在坐标轴上添加标签
# plt.title('', fontsize=24)
# plt.xlabel('datas', fontsize=14)
# plt.ylabel('squares', fontsize=14)
# plt.rcParams['font.sans-serif'] = ['SimHei']  # matplotlib默认不支持中文标签,所以此行用来正常显示中文标签
# plt.show()
#

# 绘制一元二次方程的曲线y=x^2
# 200个点的x坐标
x = range(200)
# 生成y点的坐标
y = [i**2 for i in x]
# 绘制一元二次曲线
plt.plot(x, y)
# 调用savefig将一元二次曲线保存为result.jpg
plt.savefig('result.jpg')
plt.show()

感兴趣的同志可以取消对应的注释, 去查看相应的图

result:

  1. 直线图在这里插入图片描述|200

  2. 折线图在这里插入图片描述|200

  3. 带样式的折线图在这里插入图片描述|200

  4. 一元二次方程曲线在这里插入图片描述|200

🎯实战2–绘制sin、cos,曲线图

# coding: utf-8

import matplotlib.pyplot as plt
import numpy as np

# 绘制sin和cos曲线
# 生成x的坐标(0-10的100个等差数列)
plt.figure('sin-cos', figsize=(10, 10))
x = np.linspace(0, 10, 200)  # 生成将1-10(包含10)平均分为200份后的等差数列
print(len(x))
sin_y = np.sin(x)
# 绘制正弦曲线
plt.plot(x, sin_y)
# 绘制余弦曲线
cos_y = np.cos(x)
plt.plot(x, cos_y)
plt.show()

# subplot()函数将画布分区的使用
# 将画布分为区域,将图画到画布的指定区域
x = np.linspace(1, 10, 100)
# 将画布分为2行2列, 将图画到画布的1区域
plt.subplot(2, 2, 1)
plt.plot(x, np.sin(x))
plt.subplot(2, 2, 3)  # 将图画到画布的3区域
plt.plot(x, np.cos(x))
plt.show()

# 绘制散点图
x = np.linspace(0, 10, 100)  # 生成0到10中100个数的等差数列
plt.scatter(x, np.sin(x))
plt.show()

# 画10种大小, 100中颜色的散点图
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
size = np.random.rand(100)*1000  # size参数的长度要与x, y长度匹配
plt.scatter(x, y, c=colors, s=size, alpha=0.7)
plt.show()

# 绘制不同种类不同颜色的线
# 不同种类不同颜色的线并添加图例
x = np.linspace(0, 10, 100)
plt.plot(x, x + 0, '-g', label='-g')  # 实线 绿色
plt.plot(x, x + 1, '--c', label='--c')  # 虚线 浅蓝色
plt.plot(x, x + 2, '-.k', label='-.k')  # 点划线 黑色
plt.plot(x, x + 3, '-r', label='-r')  # 实线 红色
plt.plot(x, x + 4, 'o', label='o')  # 点 默认是蓝色
plt.plot(x, x + 5, '-x', label='-x')  # 叉叉 默认是蓝色
plt.plot(x, x + 6, 'dr', label='dr')  # 砖石 红色
# 添加图例右下角lower right 左上角 upper left 边框 透明度 阴影 边框宽度
plt.legend(loc='lower right', fancybox=True, framealpha=1, shadow=True, borderpad=1)

plt.show()

因为我在绘制好一张图之后会注释掉, 然后在下面重新绘制新的图, 所以每次运行只会看到新的图, 但此处我把注释掉的代码给取消注释了, 感兴趣的同志可以复制下来去查看修改, 并且该程序是单线程的, 所以五张图不会同时弹出, 需要在关闭一张图之后才会弹出来另一张图表。为了能更直观的看到代码执行的结果, 我把每张图都给截图放到了下面。

  1. sin、cos图在这里插入图片描述|200

  2. subplot()函数画布分区的使用在这里插入图片描述

  3. sin函数图像的散点图在这里插入图片描述

  4. 10种大小, 100中颜色的散点图在这里插入图片描述

  5. 多种种类, 多种颜色的直线图(搭配图例)在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(el-radio)操作:Element-plus 中 Radio 单选框改成垂直排列的样式操作与使用

Ⅰ、Element-plus 提供的Radio单选框组件与想要目标情况的对比: 1、Element-plus 提供 Radio 组件情况: 其一、Element-ui 自提供的Radio代码情况为(示例的代码): // Element-plus 自提供的代码: // 此时是使用了 ts 语言环境&a…

4.操作元素属性

4.1操作元素常用属性 ●通过 JS 设置/修改 标签元素属性,比如通过src更换图片 ●最常见的属性比如:href、 title、 src 等 ●语法: 对象.属性 值【示例】 // 1.获取元素 const pic document.querySelector( img ) // 2.操作元素 pic.src ./images/b…

商品库存管理系统设计与实现(Vue+SpringBoot+MySQL)

一、项目背景 当今,我国科技发展日新月异,各类企业迅速崛起,商品类型日益繁多,产品数量急剧增加,企业经营模式越来越多样,信息处理量不断加大,对库存管理提出了更高的要求。通过本系统&#xff…

LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

如题。 效果图&#xff1a; //lazy属性为true&#xff0c;点开时才加载 引用代码&#xff1a; <link href"~/Content/layui-new/css/layui.css" rel"stylesheet" /><form id"form" class"layui-form" style"margin-to…

数据库索引优化与查询优化——醍醐灌顶

索引优化与查询优化 哪些维度可以进行数据库调优 索引失效、没有充分利用到索引-一索引建立关联查询太多JOIN (设计缺陷或不得已的需求) --SQL优化服务器调优及各个参数设置 (缓冲、线程数等)–调整my.cnf数据过多–分库分表 关于数据库调优的知识点非常分散。不同的 DBMS&a…

YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)

YOLOv5&#xff1a;使用7.0版本训练自己的实例分割模型&#xff08;车辆、行人、路标、车道线等实例分割&#xff09; 前言前提条件相关介绍使用YOLOv5-7.0版本训练自己的实例分割模型YOLOv5项目官方源地址下载yolov5-7.0版源码解压目录结构 准备实例分割数据集在./data目录下&…

Rust vs Go:常用语法对比(七)

题图来自 Go vs Rust: Which will be the top pick in programming?[1] 121. UDP listen and read Listen UDP traffic on port p and read 1024 bytes into buffer b. 听端口p上的UDP流量&#xff0c;并将1024字节读入缓冲区b。 import ( "fmt" "net&qu…

vue+leaflet笔记之地图聚合

vueleaflet笔记之地图聚合 文章目录 vueleaflet笔记之地图聚合开发环境代码简介插件简介与安装使用简介 详细源码(Vue3) 本文介绍了Web端使用Leaflet开发库进行地图聚合查询的一种方法 (底图来源:中科星图)&#xff0c;结合Leaflet.markercluster插件能够快速的实现地图聚合查询…

数据库数据恢复-Syabse数据库存储页底层数据杂乱的数据恢复案例

数据库恢复环境&#xff1a; Sybase版本&#xff1a;SQL Anywhere 8.0。 数据库故障&#xff1a; 数据库所在的设备意外断电后&#xff0c;数据库无法启动。 错误提示&#xff1a; 使用Sybase Central连接后报错&#xff1a; 数据库故障分析&#xff1a; 经过北亚企安数据恢复…

内存函数讲解

&#x1f495;"痛苦难以避免&#xff0c;而磨难可以选择。"-->村上春树&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;数据在内存中的存储 内存函数就是管理内存数据的函数&#xff0c;包含于头文件<string.h>中 1.memcpy函数-->内存…

机器学习——异常检测

异常点检测(Outlier detection)&#xff0c;⼜称为离群点检测&#xff0c;是找出与预期对象的⾏为差异较⼤的对象的⼀个检测过程。这些被检测出的对象被称为异常点或者离群点。异常点&#xff08;outlier&#xff09;是⼀个数据对象&#xff0c;它明显不同于其他的数据对象。异…

soft ip与hard ip

ip分soft和hard两种&#xff0c;soft就是纯代码&#xff0c;买过来要自己综合自己pr。hard ip如mem和analog与工艺有关。 mem的lib和lef是memory compiler产生的&#xff0c;基于bitcell&#xff0c;是foundry给的。 我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起…

pyspark 笔记 cast 转换列的类型

1 不借助 pyspark.sql.types from pyspark.sql.functions import coldata [("Alice", "28"), ("Bob", "22"), ("Charlie", "30")] columns ["name", "age_str"] df spark.createDataFram…

第一章 计算机网络概述

第一章 计算机网络概述 1.1 计算机网络在信息时代的作用 1.2 因特网概述 网络分类&#xff1a; 网络&#xff1a;许多计算机连接在一起的的局域网&#xff1b; 互联网&#xff1a;internet许多网络连接在一起&#xff1b; 因特网&#xff1a;Internet 全球最大的互联网&…

15.Netty源码之EventLoop

highlight: arduino-light Netty配置主从Reactor模式 通过将NioServerSocketChannel绑定到了bossGroup。 将NioServerSocketChannel接收到请求创建的SocketChannel放入workerGroup。 将2个不同的SocketChannel绑定到2个不同的Group完成了主从 Reactor 模式。 分配NIOEventLoop的…

【java安全】RMI

文章目录 【java安全】RMI前言RMI的组成RMI实现Server0x01 编写一个远程接口0x02 实现该远程接口0x03 Registry注册远程对象 Client 小疑问RMI攻击 【java安全】RMI 前言 RMI全称为&#xff1a;Remote Method Invocation 远程方法调用&#xff0c;是java独立的一种机制。 RM…

Mnist分类与气温预测任务

目录 传统机器学习与深度学习的特征工程特征向量pytorch实现minist代码解析归一化损失函数计算图Mnist分类获取Mnist数据集&#xff0c;预处理&#xff0c;输出一张图像面向工具包编程使用TensorDataset和DataLoader来简化数据预处理计算验证集准确率 气温预测回归构建神经网络…

ChatGPT统计“一到点就下班”的人数

ChatGPT统计“一到点就下班”的人数 1、到点下班 Chatgpt统计各部门F-D级员工到点下班人数占比&#xff0c;是在批评公司内部存在到点下班现象。 根据图片&#xff0c;该占比的计算方法是&#xff1a;最后一次下班卡在17:30-17:40之间&#xff0c;且1-5月合计有40天以上的人…

无人机影像配准并发布(共线方程)

无人机影像 DEM 计算四个角点坐标&#xff08;刚性变换&#xff09; 像空间坐标&#xff08;x,y,-f&#xff09; 像空间坐标畸变纠正 deltax,deltay 已知(x,y)&#xff0c;求解(X,Y, Z)或者(Lat,Lon) 这里的Z是DEM上获取的坐标和Zs为相机坐标的高程&#xff0c;如果均为已…

Django on_delete参数在sql级别操作中不生效问题

class AA(models.Model):name models.CharField(max_length128)class Meta:db_table aaclass BB(models.Model):name models.CharField(max_length128)aa models.ForeignKey(AA, nullTrue, on_deletemodels.CASCADE)class Meta:db_table bb 如上当使用ORM删除aa表中的数据…