精华内容
下载资源
问答
  • 在撰写论文时常常会用到 matplotlib 来绘制三维散点图,如下所示: 代码实现 plt.figure(figsize=(8,6)) # 设置画布大小 ax = plt.axes(projection='3d') # 设置三维轴 ax.scatter3D(X, Y, Z) # 三个数组对应三个...

    项目介绍

    在撰写论文时常常会用到 matplotlib 来绘制三维散点图,如下所示:
    在这里插入图片描述

    代码实现

    plt.figure(figsize=(8,6))  # 设置画布大小
    ax = plt.axes(projection='3d')  # 设置三维轴
    ax.scatter3D(X, Y, Z)  # 三个数组对应三个维度(三个数组中的数一一对应)
    plt.xticks(range(11))  # 设置 x 轴坐标
    plt.rcParams.update({'font.family': 'Times New Roman'})
    plt.rcParams.update({'font.weight': 'normal'})
    plt.rcParams.update({'font.size': 20})
    plt.xlabel('X')
    plt.ylabel('Y', rotation=38)  # y 轴名称旋转 38 度
    ax.set_zlabel('Z')  # 因为 plt 不能设置 z 轴坐标轴名称,所以这里只能用 ax 轴来设置(当然,x 轴和 y 轴的坐标轴名称也可以用 ax 设置)
    plt.savefig('3D.jpg', bbox_inches='tight', dpi=2400)  # 保存图片,如果不设置 bbox_inches='tight',保存的图片有可能显示不全
    plt.show()
    
    展开全文
  • 简单三维散点图 导入相关库 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D 设置相关数据 x = [565.454,562.058,561.390,563.782,567.941,571.255,571.938,569.500] y = [528.012,525....

    简单三维散点图

    导入相关库

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    

    设置相关数据

    x = [565.454,562.058,561.390,563.782,567.941,571.255,571.938,569.500]
    y = [528.012,525.544,521.447,518.108,517.407,519.857,523.953,527.356]
    z = [1.729,1.818,1.783,1.769,1.772,1.770,1.794,1.8]
    
    
    
    
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.scatter(x, y, z,marker=">",color="red")
    
    plt.show()
    

    在这里插入图片描述

    展开全文
  • 求教!! matplotlib怎么画三维散点图,最好再能叠加上线性回归后的平面
  • 他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如何绘制三维图形。初学者,可能对这些第三方库安装有一定的小问题,对于一些安装第三方库经验较少的...

    分类: 计算机视觉

    python matplotlib模块,是扩展的MATLAB的一个绘图工具库。他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如何绘制三维图形。

    初学者,可能对这些第三方库安装有一定的小问题,对于一些安装第三方库经验较少的朋友,建议使用 Anaconda ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择python 2.7 或是 3.5 的就可以了(PS:后面的demo是python2.7):

    https://www.continuum.io/downloads#windows

    首先提醒注意,以下两个函数的区别:

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow') #绘面

    ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') #绘点

    1、绘制3D曲面图

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

    """

    Created on Thu Sep 24 16:17:13 2015

    @author: Eddy_zheng

    """

    from matplotlib import pyplot as plt

    import numpy as np

    from mpl_toolkits.mplot3d import Axes3D

    fig = plt.figure()

    ax = Axes3D(fig)

    X = np.arange(-4, 4, 0.25)

    Y = np.arange(-4, 4, 0.25)

    X, Y = np.meshgrid(X, Y)

    R = np.sqrt(X**2 + Y**2)

    Z = np.sin(R)

    # 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface)

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')

    plt.show()

    效果展示:

    20150924162209826

    2、绘制三维的散点图(通常用于表述一些数据点分布)

    效果:

    20150924165102172

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

    """

    Created on Thu Sep 24 16:37:21 2015

    @author: Eddy_zheng

    """

    import scipy.io as sio

    from mpl_toolkits.mplot3d import Axes3D

    import matplotlib.pyplot as plt

    mat1 = '4a.mat' #这是存放数据点的文件,需要它才可以画出来。上面有下载地址

    data = sio.loadmat(mat1)

    m = data['data']

    x,y,z = m[0],m[1],m[2]

    ax=plt.subplot(111,projection='3d') #创建一个三维的绘图工程

    #将数据点分成三部分画,在颜色上有区分度

    ax.scatter(x[:1000],y[:1000],z[:1000],c='y') #绘制数据点

    ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r')

    ax.scatter(x[4000:],y[4000:],z[4000:],c='g')

    ax.set_zlabel('Z') #坐标轴

    ax.set_ylabel('Y')

    ax.set_xlabel('X')

    plt.show()

    展开全文
  • Matplotlib画三维图最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制...

    用Matplotlib画三维图

    最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感

    三维的线图和散点图

    #绘制三角螺旋线

    from mpl_toolkits import mplot3d

    %matplotlib inline

    import matplotlib.pyplot as plt

    import numpy as np

    ax = plt.axes(projection='3d')

    #三维线的数据

    zline = np.linspace(0, 15, 1000)

    xline = np.sin(zline)

    yline = np.cos(zline)

    ax.plot3D(xline, yline, zline, 'gray')

    # 三维散点的数据

    zdata = 15 * np.random.random(100)

    xdata = np.sin(zdata) + 0.1 * np.random.randn(100)

    ydata = np.cos(zdata) + 0.1 * np.random.randn(100)

    ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens')

    2020072809451616.png

    三维等高线图

    def f(x, y):

    return np.sin(np.sqrt(x ** 2 + y ** 2))

    x = np.linspace(-6,6,30)

    y = np.linspace(-6,6,30)

    X, Y = np.meshgrid(x, y)

    Z = f(X,Y)

    fig = plt.figure()

    ax = plt.axes(projection='3d')

    ax.contour3D(X, Y, Z, 50, cmap='binary')

    ax.set_xlabel('x')

    ax.set_ylabel('y')

    ax.set_zlabel('z')

    #调整观察角度和方位角。这里将俯仰角设为60度,把方位角调整为35度

    ax.view_init(60, 35)

    2020072809451617.png

    线框图和全面图

    全面图和线框图相似,只不过线框图的每一个面都是由多边形构成。只要增加唉一个配色方案来填充这些多边形,就可以感受到可视化图形表面的拓扑结构了。

    #线框图

    fig =plt.figure()

    ax = plt.axes(projection='3d')

    ax.plot_wireframe(X, Y, Z, color='c')

    ax.set_title('wireframe')

    2020072809451618.png

    #曲面图

    ax = plt.axes(projection='3d')

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis', edgecolor='none')

    ax.set_title('surface')

    2020072809451619.png

    #使用极坐标可以获得切片的效果

    r = np.linspace(0, 6, 20)

    theta = np.linspace(-0.9 * np.pi, 0.8 * np.pi, 40)

    r, theta = np.meshgrid(r, theta)

    X = r * np.sin(theta)

    Y = r * np.cos(theta)

    Z = f(X, Y)

    ax = plt.axes(projection='3d')

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis', edgecolor='none')

    2020072809451620.png

    曲面三角剖分

    在某些应用场景下,上述这些要求均匀采样的网格数据显得太过严格且不太容易实现。这时就可以使用三角剖分部分图形。

    theta = 2 * np.pi * np.random.random(1000)

    r = 6 * np.random.random(1000)

    x = np.ravel(r * np.sin(theta))

    y = np.ravel(r * np.cos(theta))

    z = f(x, y)

    ax = plt.axes(projection='3d')

    ax.scatter(x, y, z, c=z, cmap='viridis', linewidth=0.5)

    2020072809451621.png

    #上图还有许多地方需要修补,这些工作可以由ax.plot_trisurf函数帮助我们完成。它首先找到一组所有点都连接起来的三角形,然后用这些三角形创建曲面

    ax = plt.axes(projection='3d')

    ax.plot_trisurf(x, y, z, cmap='viridis', edgecolor='none')

    2020072809451622.png

    莫比乌斯带(应用曲面三角剖分)

    #绘制莫比乌斯带

    #由于它是一条二维带,因此需要两个内在维度。theta维度取值范围是0~2pi,宽度维度w取值范围是-1~1

    theta = np.linspace(0, 2 * np.pi, 30)

    w = np.linspace(-0.25, 0.25, 8)

    w, theta = np.meshgrid(w, theta)

    phi = 0.5 * theta

    #x-y平面内的半径

    r = 1 + w * np.cos(phi)

    x = np.ravel(r * np.cos(theta))

    y = np.ravel(r * np.sin(theta))

    z = np.ravel(w * np.sin(phi))

    #要画出莫比乌斯带,还必须保证三角部分是正确的。最好的方法是首先用基本参数化方法定义三角部分,然后用Matplotlib将

    #这个三角剖分映射到莫比乌斯带的三维空间里

    from matplotlib.tri import Triangulation

    tri = Triangulation(np.ravel(w), np.ravel(theta))

    ax = plt.axes(projection='3d')

    ax.plot_trisurf(x, y, z, triangles=tri.triangles, cmap='viridis', linewidth=0.2)

    ax.set_xlim(-1, 1);ax.set_ylim(-1,1);ax.set_zlim(-1,1)

    2020072809451623.png

    到此这篇关于如何用Matplotlib 画三维图的示例代码的文章就介绍到这了,更多相关Matplotlib 三维图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • Matplotlib画三维图最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制...
  • Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散点图 #...
  • matplotlib画三维图

    2021-02-24 02:05:45
    #先画三维散点图试试 #基本操作 from mpl_toolkits import mplot3d %matplotlib inline import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = plt.axes(projection='3d') #设置线条的...
  • Matplotlib画三维图最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制...
  • y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图12345678910111213141516171819#绘制三角螺旋线from ...
  • Matplotlib画三维图最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制...
  • Matplotlib画三维图最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制...
  • 维散点图import numpy as npimport matplotlib.pyplot as plt#假设已经定好data_pos = ...x = data_pos[:, 0]y = data_pos[:, 1]plt.ylim(ymax=20, ymin=0) #限定Y轴的范围plt.plot(x, y, 'ro...
  • 画三维散点图: 就不能直接用plot和scatter了:他们都是画2D的。 而要首先声明一个画3D图的ax from mpl_toolkits.mplot3d import Axes3D ax = plt.subplot(111, projection='3d') #而且每次画完一个3D图都要...
  • 前言散点图Matplotlib常用图形之一,与线形图类似。但是这种图形不再由线段连接,而是由独立的点、圆圈或其他形状构成...用plt.plot画散点图import numpy as npimport matplotlib.pyplot as pltx= np.linspace(0, ...
  • 我们在matplotlib基础中提过图表是由艺术家使用渲染器在画布上完成的。而艺术家有两种类型:图元与容器。图元表示绘制在画布上的标准图形对象,如:Line2D,容器是放置图元的位置如:Axis,Axes和Figure。标准用法是...
  • 大家可以先参考官方演示文档:效果:'''==============3D scatterplot==============Demonstration of a basic scatterplot in 3D.'''from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt...
  • 用python画图很多是根据z=f(x,y)来画图的,本博文将个对应的坐标点输入画图:散点图:import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, ...
  • import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D points = np.load(path) print(points.shape) # (N, 3) fig = plt.figure() ax = Axes3D(fig) ax.scatter(points[...,0], points[...,1]...
  • matplotlib画散点图

    2017-03-27 16:57:16
    本文记录了Python中的数据可视化——散点图scatter, 令x作为数据(50个点,每个30),我们仅可视化前两。labels为其类别(假设有类)。 这里的x就用random来了,具体数据具体分析。 label设定为[1:20]->1,...
  • 三维散点图:Python 之matplotlib

    万次阅读 2016-11-09 17:06:08
    这是R语言默认plot函数直接就出来的散点图。   很多时候,虾神我都用散点图来作为R语言的hello world,如下:   只要能够弹出来图形来,就说明R语言基本正常了。   所以,散点图可能是我们搞可视化专题图...
  • 1. 绘制3D曲面from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfig=plt.figure()ax=Axes3D(fig)x=np.arange(-4,4,0.25)y=np.arange(-4,4,0.25)x,y=np.meshgrid(x,...
  • Matplotlib学习笔记——画三维图

    万次阅读 多人点赞 2018-08-17 17:20:28
    Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散点...
  • 维散点图import numpy as npimport matplotlib.pyplot as plt#假设已经定好data_pos = ...x = data_pos[:, 0]y = data_pos[:, 1]plt.ylim(ymax=20, ymin=0) #限定Y轴的范围plt.plot(x, y, 'ro...
  • 目录画柱状图画折线图画直方分布图改进(自由设置坐标刻度、横纵坐标重合)画二维散点图(包括坐标刻度用科学计数法)画三维散点图画热力图(相关系数矩阵图) 为了达到美观的效果,本文给出的例子都稍微有点复杂。...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

matplotlib画三维散点图