码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python绘制三维图详解


    利用Python绘制三维图

    目标: 绘制图像 z 2 = x 2 + y 2 z^2 = x^2 + y^2 z2=x2+y2

    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D #绘制3D图案
    
    • 1
    • 2
    • 3

    画曲面的第一步是就是要创建一个二维平面的网格,在Python当中,我们使用meshgrid()函数,在matlab中也是这个函数哦

    创建数据:首先创建x和y,它们的范围都是(-1,1)

    x = np.linspace(-1,1,100)
    y = np.linspace(-1,1,50)
    
    • 1
    • 2

    然后调用numpy中的meshgrid函数,进行网格化操作。

    x_,y_ = np.meshgrid(x,y,indexing='ij') 
    
    • 1

    x_,y_返回网格数组,通过打印x_和y_的形状,可以看到x_,y_都是(100*50) 的二维数组,也就是数组x的长度乘以数组y的长度

    print(x_.shape,y_.shape)  
    
    • 1
    (100, 50) (100, 50)
    
    • 1

    网格化统一了X,Y的维度,数组运算时,涉及更多数据,范围更广

    z_ = x_**2 + y_**2
    
    • 1

    绘制图形

    plt.figure():自定义图像
    .add_subplot():添加子图
    .plot_surface():绘制曲面
    .colorbar():添加颜色棒

    fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
    sub = fig.add_subplot(111,projection='3d')# 添加子图,
    surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
    cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒
    
    
    sub.set_xlabel(r"$x$")
    sub.set_ylabel(r"$y$")
    sub.set_zlabel(r"$z$")
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​

    ​

    完整代码

    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D #绘制3D图案
    
    x = np.linspace(-1,1,100)
    y = np.linspace(-1,1,50)
    x_,y_ = np.meshgrid(x,y,indexing='ij') 
    z_ = x_**2 + y_**2
    fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
    sub = fig.add_subplot(111,projection='3d')# 添加子图,
    surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
    cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒
    
    sub.set_xlabel(r"$x$")
    sub.set_ylabel(r"$y$")
    sub.set_zlabel(r"$z$")
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    请添加图片描述

  • 相关阅读:
    激光雷达成「烫手山芋」?或成车企降本的牺牲品
    ssm日常项目中问题集合
    009.配置文件定制bash
    算法基础 动态规划 钢管问题
    【毕业云】基于Java的高校学生会管理系统的设计和开发方案及技术栈
    气膜建筑凭借自身优势,提供多功能室内体育馆
    如何在 Java 中实现无向图
    JWT单点登录
    选好冒烟测试用例,为进入QA的制品包把好第一道关
    11-08 周三 图解机器学习之实现逻辑异或,理解输出层误差和隐藏层误差项和动量因子
  • 原文地址:https://blog.csdn.net/qq_45176548/article/details/127998794
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号