Matplotlib_概述_绘制图象

news2024/9/28 17:22:58

⛳绘制基础

  • 在使用 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. 多种种类, 多种颜色的直线图(搭配图例)在这里插入图片描述

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

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

相关文章

【蓝图】p44简单解密机关

p44简单解密机关 p44简单解密机关文字提示开门文字提示开灯For Each Loop和For Each Loop With Break区别For Each LoopFor Each Loop With Break小操作:改变走线Execute Console Command(执行控制台命令) p44简单解密机关 文字提示开门 创建Actor蓝图类&#xff…

软件测试生命周期

本章简要介绍了软件开发项目中常用的生命周期模型,并解释了测试在每个模型中扮演的角色。它讨论了各种测试级别和测试类型之间的区别,并解释了这些在开发过程中的应用位置和方式。 大多数软件开发项目是按照事先选择的软件开发生命周期模型来计划和执行…

win11任务栏不合并 终于回归啦

25915.1000 win11任务栏不合并 终于回归啦!!! 下载地址:https://uup.rg-adguard.net/

Jenkins搭建最简教程

纠结了一小会儿,到底要不要写这个,最终还是决定简单记录一下,因为Jenkins搭建实在是太简单了,虽然也有坑,但是坑主要在找稳定的版本上。 先学一个简称,LTS (Long Term Support) 属实是长见识了&#xff0c…

Excel透视表与python实现

目录 一、Excel透视表 1、源数据 2、数据总分析 3、数据top分析 二、python实现 1、第一张表演示 2、第二张表演示 一、Excel透视表 1、源数据 1)四个类目,每类50条数据 2)数据内容 2、数据总分析 1)选择要分析的字段&…

live-server本地起node服务解决跨域问题

一、初始化node,构建package.json NPM 全局安装live-server npm install -g live-server在当前项目文件夹下cmd运行: npm init -y此时会在根目录下生成一个package.json文件。 二.生成代理脚本 在根文件夹新建一个build.js文件(名字可以自定义) var …

银行项目性能压测?关键链路性能压力测试,测试老鸟总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 随着银行业数字化…

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集 前言相关介绍COCO格式实例分割数据集转换为YOLO格式实例分割数据集coco格式对应的json文件,以test.json为例格式转换代码,内容如下 前言 由于本人水平有限,难免出现错漏&#xf…

MySQL基础(五)主从复制及读写分离

目录 前言 一、概述 (一)、MySQL Replication (二)、MySQL复制类型 (三)、MySQL支持的复制方式 二、部署MySQL主从异步复制 (一)、master(主) &#x…

一起来学shiny把(3)—-添加控件

什么是shiny?Shiny是一个R包,可让您轻松地直接从 R 构建交互式 Web 应用程序(应用程序)。本系列是个长教程,带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧(2)》…

【C++11】——右值引用、移动语义

目录 1. 基本概念 1.1 左值与左值引用 1.2 右值和右值引用 1.3 左值引用与右值引用 2. 右值引用实用场景和意义 2.1 左值引用的使用场景 2.2 左值引用的短板 2.3 右值引用和移动语义 2.3.1 移动构造 2.3.2 移动赋值 2.3.3 编译器做的优化 2.3.4 总结 2.4 右值引用…

开源盛行:为什么学习国产达梦数据库?

开源盛行:为什么学习国产达梦数据库? 武汉达梦数据库股份有限公司成立于2000年,是国内领先的数据库产品开发服务商,国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据…

【数据结构】·顺序表函数实现·赶紧学起来呀

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

element-ui使用动态渲染下拉选择框el-select已经选择的下拉框的值不可以重复选择让其disabled

调接口拿到下拉框数据的数据的时候将其disabled全为true 但是如果编辑的时候就需要与详情接口对比,如果有id一致就将disabled为true if (res.code 0) {if (this.dialogtitle "新增合同") {res.data.map((v) > {v.nameUnitVoList.forEach((item) >…

九耶:产品经理面试题 ——请说说工作中你主导的产品上线后你会关注哪些数据指标?

【面试官考察的点】 实际的产品工作中需要通过数据驱动业务:产品经理了解用户对不同功能的使用情况,行为特征和使用反馈,这样可以为产品的改进提供很好的方向。面试官想考察你是否具备数据分析的意识和能力。 【满分回答】 在产品上线后&am…

百度开发者平台API地理编码,根据地址获取经纬度

地理编码 | 百度地图API SDK (baidu.com) 原始csv # encoding:utf-8 import requests import csv import json # 接口地址 url "https://api.map.baidu.com/geocoding/v3"# 此处填写你在控制台-应用管理-创建应用后获取的AK ak "XXXXXXX"# 创建CSV文件并…

vue 实现拖拽效果

实现方式:使用自定义指令可以实现多个面板拖拽互不影响 1.自定义指令 js directives: {// 拖拽drag(el) {el.onmousedown function (e) {let x e.pageX - el.offsetLeftlet y e.pageY - el.offsetTopdocument.onmousemove function (e) {el.style.left e.pag…

掌握Python的X篇_12_如何使用VS Code调试Python程序

本篇将会介绍如何使用VS Code调试Python程序。 文章目录 1. 什么是调试2. 断点3. 如何启动调试4. 监视窗口5. 单步 1. 什么是调试 我们可以利用VS Code对Python代码进行调试。所谓调试,大家可以理解成有能力将程序进行 “慢动作播放”让我们有机会看到程序一步一步…

一文2500字详解如何使用mock.js实现接口测试的自动化

这篇文章主要为大家介绍了如何使用mock.js实现接口测试的自动化详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 Mock.js 基础用法介绍 Mock.js是一个常用于生成随机数据和拦截Ajax请求的JavaScr…

linux基础学习

1.day1 1、修改虚拟机的网络; sudo vim /etc/netplan/*.yaml sudo netplan apply 2.day2 1、VIM配置; 2、安装SSH,调用putty接入终端; 3、shell命令; *:匹配任意长度的字符 ?:匹…