python 三维散点图拟合曲面_python 绘图---2D、3D散点图、折线图、曲面图

本文介绍了如何使用Python的Matplotlib库绘制2D和3D的图形,包括折线图、散点图以及曲面图。通过实例展示了plt.plot()、plt.scatter()和plot_surface()等函数的用法,并给出了添加坐标轴说明、标题和文字的方法。
摘要由CSDN通过智能技术生成

python中绘制2D曲线图需要使用到Matplotlib,Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

1. 绘制折线图

plt.plot() 可以用于绘制折线图。只传入一维的散点(n个)p1时,横坐标对应散点的次序,从0到n-1,纵坐标对应散点的值。示例:

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

import numpy as np

p1=[0,1.1,1.8,3.1,4.0] # 数据点

#创建绘图图表对象,可以不显式创建,跟cv2中的cv2.namedWindow()用法差不多

plt.figure('Draw')

plt.plot(p1) # plot绘制折线图

plt.draw() # 显示绘图

plt.pause(5) #显示5秒

plt.savefig("easyplot01.jpg") #保存图象

plt.close() #关闭图表

绘图:

SouthEast

plt.plot() 传入二维的散点p1,p2(p1和p2的长度要一样)时,横坐标x绘制p1,纵坐标y绘制p2,示例:

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

import numpy as np

p1=[0,1.1,1.8,3.1,4.0] # 数据点

p2=[2,2.4,4.3,3.5,2.5]

#创建绘图图表对象,可以不显式创建,跟cv2中的cv2.namedWindow()用法差不多

plt.figure('Draw')

plt.plot(p1,p2) # plot绘制折线图

plt.draw() # 显示绘图

plt

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中常用的用于绘制三维散点图的库有matplotlib和plotly等,其中matplotlib是比较常用的。假设我们已经读取了一个包含三维坐标的数据集,可以将其表示为一个3列的numpy数组,其中每一行对应着一个三维点的坐标。为了在matplotlib中绘制三维散点图,首先需要导入相应的模块: ``` import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D ``` 接着,我们可以尝试将三维点绘制出来: ``` x = np.random.rand(100) y = np.random.rand(100) z = np.sin(x * y) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(x, y, z) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show() ``` 上面的代码使用了numpy库中的rand函数生成了100个随机的三维点坐标,并使用sin函数计算出了点的Z坐标。然后通过matplotlib和mpl_toolkits模块绘制出了散点图。需要注意的是,我们使用了projection='3d'参数来告诉matplotlib我们需要绘制的是一个三维像。另外,可通过set_xlabel,set_ylabel,set_zlabel三个函数对坐标轴进行命名。 对于三维散点图拟合曲面,可以使用scipy库中的interpolate函数进行插值处理。在我们已有的散点数据集上,我们可以利用二维的插值函数生成一个拟合曲面(也就是对原来的数据进行了一个平滑的拟合)。下面的代码展示如何使用interpolate函数生成一个拟合曲面: ``` from scipy.interpolate import griddata # 生成拟合曲面所需的网格点 xi = np.linspace(min(x), max(x), 50) yi = np.linspace(min(y), max(y), 50) X, Y = np.meshgrid(xi, yi) # 利用插值函数生成Z坐标值 Z = griddata((x, y), z, (X, Y), method='cubic') # 绘制拟合曲面 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, Z, cmap='coolwarm') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show() ``` 在上面的代码中,我们使用了griddata函数对数据进行了一个二维插值,生成了一个平滑的拟合曲面,最后使用plot_surface函数绘制了这个曲面。需要注意的是,这里绘制的拟合曲面并不完全是原始散点数据的一个真实的“表面”,而仅仅是一个在散点数据周围的平滑曲面。不过,对于数据的可视化而言,这种方法已经足够了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值