如何在Matplotlib中绘制平滑曲线

很多时候,我们有从非常分散的数据列表中生成的线图,这使得图形看起来像连接点的直线,或者非常密集,这导致数据点彼此非常接近,因此图看起来很混乱。

默认情况下,matplotlib.pyplot.plot()函数通过用直线连接数据中的两个相邻点来生成曲线,因此matplotlib.pyplot.plot()函数不会为小范围的数据点生成平滑曲线。

示例:

import numpy as np
import matplotlib.pyplot as plt# Dataset
x = np.array([ 1, 2, 3, 4, 5, 6, 7, 8 ])
y = np.array([ 20, 30, 5, 12, 39, 48, 50, 3 ])# Plotting the Graph
plt.plot(x, y)
plt.title("Curve plotted using the given points")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

在这里插入图片描述
可以看到,由于底层数据不遵循平滑的直线,因此该图一点也不平滑。为了绘制一条平滑的曲线,我们首先将一条样条曲线拟合到曲线上,并使用该曲线来找到x值的y值,x值被一个无限小的间隙隔开。我们可以通过用一个非常小的间隙画出这些点来得到一条光滑的曲线。

我们可以使用以下方法来创建此数据集的平滑曲线:

1.使用PyPlot绘制平滑曲线:

它通过首先使用scipy.interpolate.make_interp_spline()确定样条曲线的系数来绘制平滑的样条曲线。我们使用给定的数据点来估计样条曲线的系数,然后使用这些系数来确定非常接近的x值的y值,以使曲线看起来平滑。这里我们将使用np.linspace()方法,它返回在指定时间间隔内计算的均匀间隔的样本。可选参数num是在start和stop范围内生成的样本数。默认值为50,且必须为非负数。我们希望该参数具有足够高的值以生成平滑曲线。让我们在最小值和最大值之间沿X轴沿着取500个等距样本来绘制曲线。

语法:

numpy.linspace(start, stop, num = 50, endpoint = True, retstep =
False, dtype = None, axis = 0)

X_Y_Spline = scipy.interpolate.make_interp_spline(x, y)

import numpy as np
import numpy as np
from scipy.interpolate import make_interp_spline
import matplotlib.pyplot as plt # Dataset
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([20, 30, 5, 12, 39, 48, 50, 3])X_Y_Spline = make_interp_spline(x, y)# Returns evenly spaced numbers
# over a specified interval.
X_ = np.linspace(x.min(), x.max(), 500)
Y_ = X_Y_Spline(X_)# Plotting the Graph
plt.plot(X_, Y_)
plt.title("Plot Smooth Curve Using the scipy.interpolate.make_interp_spline() Class")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

在这里插入图片描述
2. 三次插值样条曲线

它使用scipy.interpolate.interp1d类生成一条三次插值曲线,然后我们使用该曲线来确定平滑曲线的密集x值的y值。这里我们也将使用np.linspace()方法,该方法返回在指定时间间隔内计算的均匀间隔的样本。让我们在最小值和最大值之间沿X轴沿着取500个等距样本来绘制曲线。根据您希望直线弯曲的程度,可以修改第三个参数(num)的值。

语法: numpy.linspace(start, stop, num=50, endpoint=True, retstep=False,
dtype=None, axis=0)

cubic_interpolation_model=scipy.interpolate.interp1d(x,y,kind=”cubic”)

import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt # Dataset
x=np.array([1, 2, 3, 4, 5, 6, 7, 8])
y=np.array([20, 30, 5, 12, 39, 48, 50, 3])cubic_interpolation_model = interp1d(x, y, kind = "cubic")# Plotting the Graph
X_=np.linspace(x.min(), x.max(), 500)
Y_=cubic_interpolation_model(X_)plt.plot(X_, Y_)
plt.title("Plot Smooth Curve Using the scipy.interpolate.interp1d Class")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

在这里插入图片描述

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

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

相关文章

在protobuf里定义描述rpc方法的类型

service UserServiceRpc //在test.proto中定义 { rpc Login(LoginRequest)returns(LoginResponse); rpc GetFriendLists(GetFriendListRequest)returns(GetFriendListResponse); } test.proto文件生成test.pb.cc protoc test.proto --cpp_out./ 将生成的…

IDM的实用功能介绍+下载地址

下载地址 : 下载到idm 互联网下载管理器(IDM)实用功能概述 1. 多线程下载 IDM使用多线程技术,将文件分割成多个部分同时下载,显著提高下载速度。 2. 计划任务 用户可以设定下载任务的开始时间,甚至在特…

Wpf 使用 Prism 实战开发Day21

配置默认首页 当应用程序启动时&#xff0c;默认显示首页 一.实现思路&#xff0c;通过自定义接口来配置应用程序加载完成时&#xff0c;设置默认显示页 步骤1.创建自定义 IConfigureService 接口 namespace MyToDo.Common {/// <summary>/// 配置默认显示页接口/// <…

在一台笔记本电脑上试用Ubuntu22.04

在一台笔记本电脑上试用Ubuntu22.04。 本来想看以下该操作系统能否识别笔记本电脑上的硬盘&#xff0c;于是下载试一下。选了一个国内镜像网站下载。下载速度很快。下载以后用软件win image 将下载的iso文件写到U盘上&#xff0c;用的是usb2.0的U盘&#xff0c;该操作用时11分…

jmeter及PTS压测介绍和使用

一、常用压测工具&#xff1a; loadrunner apache ab&#xff08;单接口压测最方便&#xff09; jmeter 阿里云PTS&#xff08;原生上传jmeter脚本进行压测&#xff09; 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

【Qt】探索Qt框架:跨平台GUI开发的利器

文章目录 1. Qt框架概述1.1. Qt框架的优点1.2. Qt框架支持的系统1.3. Qt开发环境 2. 搭建 Qt 开发环境2.1. Qt SDK 的下载和安装2.2. 新建项目: 3. Qt 框架内容简介总结 在当今软件开发领域&#xff0c;跨平台性和用户界面的友好性是至关重要的。而Qt框架作为一款跨平台的C图形…

SQLite的知名用户(二十九)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite作为应用程序文件格式&#xff08;二十八&#xff09; 下一篇:SQLite FTS5 扩展&#xff08;三十&#xff09; SQLite被数以百万计的应用程序使用 从字面上看&#xff0c;有数十亿次部署。 SQLite 是 当今世界。 下面…

面试高频:HTTPS 通信流程

更多大厂面试内容可见 -> http://11come.cn 面试高频&#xff1a;HTTPS 通信流程 HTTPS 的加密流程 接下来说一下 HTTPS 协议是如何进行通信的&#xff1a; HTTPS 通信使用的 对称加密 非对称加密 两者结合的算法 HTTPS 通信时&#xff0c;会先使用 非对称加密 让通信双…

C# WPF布局

布局&#xff1a; 1、Grid: <Window x:Class"WpfApp2.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"http://schemas.microsoft.com…

spring版本介绍

Spring Framework 是一个广泛使用的 Java 平台&#xff0c;用于构建企业级应用程序。它提供了一个全面的编程和配置模型&#xff0c;支持现代 Java 应用程序的最佳实践&#xff0c;如依赖注入、面向切面编程以及基于注解的编程模型。自从 Spring 1.0 发布以来&#xff0c;已经经…

阿里云获取个人免费ssl证书【总耗时1分钟】【隐藏的操作流程】

1共10张图 按照图片中的指示流程1分钟就获取好了 对比&#xff1a;自己搭建个docker制作获取&#xff0c;需要10分钟以上 ps&#xff1a;看不懂图片我&#xff0c;99RMB&#xff0c;远程搞【专业领域的ssl证书选择】

JDBC学习

DriverManager&#xff08;驱动管理类&#xff09; Drivermanager的作用有&#xff1a; 1.注册驱动&#xff1b; 2.获取数据库连接 Class.forName("com.mysql.cj.jdbc.Driver"); 这一行的作用就是注册Mysql驱动&#xff08;把我们下载的jar包加载到内存里去&…

【QT进阶】Qt http编程之用户登录注册功能实现

往期回顾 【QT进阶】Qt http编程之http与https简单介绍-CSDN博客 【QT进阶】Qt http编程之后端API测试工具postman使用介绍-CSDN博客 【QT进阶】Qt http编程之http相关类的简单介绍-CSDN博客 【QT进阶】Qt http编程之用户登录注册功能实现 一、最终效果展示 重点在逻辑实现&a…

6. DAX 时间函数-- DATE 日期--FIRSTDATE \LASTDATE\DATESMTD\DATESQTD\DATESYTD

函数名目的语法返回值FIRSTDATE 返回指定日期列在当前上下文中的第一个非空日期。FIRSTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。LASTDATE返回指定日期列在当前上下文中的最后一个非空日期。LASTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。…

为主机配置IP

第一种方法&#xff1a;nmcli #nmcli connection modify eth0 ipv4.method manual ipv4.addresses 172.25.254.100/24 ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114.114 autoconnect yes #nmcli c up etho //激活网卡命令&#xff08;网卡早就配好&#xff0c;只是修改i…

详解JVM类加载

从类被加载到虚拟机内存中开始&#xff0c;到释放内存总共有7个步骤&#xff1a;加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Ini…

golang学习笔记(net/http库基本使用)

关于net/http库 我们先看看标准库net/http如何处理一个请求。 import ("fmt""log""net/http" )var count 0func main() {http.HandleFunc("/", handler)http.HandleFunc("/count", counter)log.Fatal(http.ListenAndServ…

cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间

问题 在shell输入命令按tab键时出现以下报错 (base) [link999hadoop102 ~]$ cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间 -bash: cd: /op: 没有那个文件或目录原因分析 磁盘空间不够 df -Th # 通过命令查看具体情况解决 1、清理大文件 进入到 容量-已用 使…

使用easyexcel将csv转为excel

一.背景 供应商系统下载的csv文件不支持域控&#xff08;主要是第三方wps服务不能对csv文件加密&#xff0c;但是可以对office系列产品进行权限访问的加密控制&#xff09;。因此思路就改为现将csv文件转为excel文件&#xff0c;然后对excel文件进行加域控制。本文主要介绍如何…

12.Hexo helpers类似函数和data folder数据文件夹

helper Hexo里的helper&#xff0c;或者说是函数 基本上就是小函数&#xff0c;可以在layout布局中使用&#xff0c;可以允许做一些事情 如字符串操作、检查true或false、检查是否在一个页面上、打印出某个页面中的日期或时间特定格式 打开index.ejs trim 可以通过 <%…