文章目录

  • 1.等高线图
    • 1.1 meshgrid
    • 1.2 plt.contourf
    • 1.3 plt.contour
    • 1.4 plt.clabe
    • 1.5 测试代码
    • 1.6 最终效果
  • 2. 3D图形的绘制
    • 2.1 plot_surface
    • 2.2 测试代码
    • 2.3 测试结果
  • 写在最后

1.等高线图

要想画出一个等高线图,主要分为以下三个步骤

  1. 铺盖出平面
  2. 在平面上赋值
  3. 在分界处画出等高线
  4. 为等高线添加标签

1.1 meshgrid

主要用于铺盖出一个二维平面

  • 其参数主要传进去两个linspace函数生成的向量
  • 如果传进去的两个向量的维度分别为m维度和n维度,则可以生成一个m*n的一个网格平面
  • 在这m*n个网格数据中附上对应的数值,则相当于在三维的的空间中做出了图像,第三个维度在二维平面中表现为颜色的深浅
#定义网格
X,Y = np.meshgrid(x,y)

1.2 plt.contourf

f对应的意思是fill,这个函数的功能主要可以将二维的图片依据传进去的参数Z涂上相应的颜色

  • 参数1和2传进去刚才生成的二维网格的平面坐标
  • 参数3传进去网格对应生成的Z轴数据
  • 参数4输入一个整数,表示图片中将被分成的色块的数量
  • alpha:透明度
  • cmap:图片的整体色系
#把颜色放上去
# 数字8 表示将等高线分成多少部分,如果这里填8的话就是10个部分
plt.contourf(X, Y, f(X,Y), 8, alpha = 0.75, cmap=plt.cm.hot)

1.3 plt.contour

相比于上面一个函数,少了个f,这个函数主要用于在不同的色块交界的地方绘制等高线

  • 其传进去的前几个参数的含义与上一部分的函数大致相同
  • colors:线的颜色
  • linewidths:线宽
#画等高线的线
#注意线的宽度是 linewidths,后面有s
C = plt.contour(X,Y,f(X,Y),8,colors = 'black',linewidths=.5)

1.4 plt.clabe

为等高线加上标注

  • 第一个参数传进去刚才等高线绘制函数返回的句柄
  • inline:等高线是否穿过字体
  • fontsize:文字大小
#添加线对应的标签
#改为False的话就会使得线穿过数字本身
plt.clabel(C,inline=True,fontsize = 10)

1.5 测试代码

# -*- coding:utf-8 -8-
"""
Author: Leung
Date: 2021--08--23
"""import matplotlib.pyplot as plt
import numpy as npdef f(x, y):# the height functionreturn (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)#定义网格
X,Y = np.meshgrid(x,y)#把颜色放上去
# 数字8 表示将等高线分成多少部分,如果这里填8的话就是10个部分
plt.contourf(X, Y, f(X,Y), 8, alpha = 0.75, cmap=plt.cm.hot)#画等高线的线
#注意线的宽度是 linewidths,后面有s
C = plt.contour(X,Y,f(X,Y),8,colors = 'black',linewidths=.5)#添加线对应的标签
#改为False的话就会使得线穿过数字本身
plt.clabel(C,inline=True,fontsize = 10)plt.xticks(())
plt.yticks(())
plt.show()

1.6 最终效果


2. 3D图形的绘制

3D图像与等高线的绘制方法绘制,都是几大步骤

  1. 指定网格
  2. 在网格上写下对应的数值
  3. 绘制图像 ,主要使用plot_surface函数

不过需要注意的是,我们在绘制3D图像的时候需要在前面加上加粗样式一个3D图像的定义句柄

#加上一个3D的坐标轴
ax = Axes3D(fig)

这个功能类似于我们画2D图像时候定义的figure

2.1 plot_surface

与前面等高线的绘制函数类似

  • 前三参数传进去X,Y,Z
  • rstride=1 表示行跨度 与列跨度,跨度越大,其小正方形面积越大
  • cmap=plt.get_cmap(‘rainbow’):设置图形的色系为彩虹色
# rstride=1 表示行跨度 与列跨度
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))

2.2 测试代码

# -*- coding:utf-8 -8-
"""
Author: Leung
Date: 2021--08--23
"""
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()#加上一个3D的坐标轴
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)# rstride=1 表示行跨度 与列跨度
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))# 从z轴压下去,投影到xoy平面上
ax.contourf(X,Y,Z,zdir='z',offset=-1,cmap='rainbow')
ax.set_xlim(-4,4)plt.show()

2.3 测试结果


写在最后

本文章为【莫烦Python】Matplotlib Python 画图教程课程对应的一些课堂笔记,并参考了Matplotlib的开发者文档,仅为各位同志学习参考之用

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

Matplotlib Python 画图工具包教程学习笔记4 等高线图以及3D图形的画法相关推荐

  1. python机器学习基础教程-学习笔记(一)

    了解 scikit-learn 及其用法是很重要的,但还有其他一些库也可以改善你的编程体验. scikit-learn 是基于 NumPy 和 SciPy 科学计算库的.此外,我们还会用到 panda ...

  2. python廖雪峰教程 学习笔记

    如何用字符来描述字符: \d匹配数字   digit \w匹配字母或数字  word \s可以匹配空格 space * 表示任意个字符, +表示至少一个字符  ?表示0个或1个字符, {n} 表示n个 ...

  3. Python廖雪峰教程学习笔记:Day5

    前言 养成一个好的习惯只需要坚持21天,Day5 高级特性 切片 迭代 列表生成器 生成器 切片 取一个list和tuple的部分元素可以用切片快速实现. L为一个list,L[0:3]表示从索引0开 ...

  4. Python廖雪峰教程学习笔记:Day4

    前言 养成一个好的习惯只需要坚持21天,Day4 函数 编程中,函数的调用.定义在一定程度上可以简化功能的实现,降低程序的复杂度. 调用函数 Python中内置了许多有用的函数,我们在调用一个内置函数 ...

  5. Python廖雪峰教程学习笔记:Day3

    前言 养成一个好的习惯只需要坚持21天,Day3 条件判断和循环 条件判断与循环在编程实现中都很常见,比如,输入用户的年龄,根据年龄的大小可以打印出不同的内容,该功能的实现可以使用if语句实现: if ...

  6. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  7. 【莫烦Python】Matplotlib Python画图教程

    目录 前言 1.基本使用 1.1 基本用法 1.2 figure图像 1.3 设置坐标轴1 1.4 设置坐标轴2 1.5 Legend图例 1.6 Annotation标注 1.7 tick能见度 2 ...

  8. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  9. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

最新文章

  1. 2015年北京国电通面试题
  2. 牛客月赛42题解【完结】
  3. if condition 大于_小函数,大用处!巧用AND函数,避开IF函数嵌套
  4. RobotFramework自动化框架—robot文件中调用自定义库
  5. ruby 集合 分组_在Ruby中打印集合的元素
  6. java zoneid_java – ZoneId和LocalDateTime
  7. 加拿大大学计算机世界排名,加拿大计算机专业大学排名
  8. Windows7如何显示文件后缀
  9. PostgreSQL的全文检索(一)
  10. python pip安装报错_基于windows下pip安装python模块时报错总结
  11. android 控件发光_Android自定义控件打造闪闪发光字体
  12. 动画过渡transition
  13. 64位处理器_计算机基础:处理器
  14. 天基实业投资理财需了解的基础知识
  15. 某短视频的X-Gorgon,X-Ladon等加密
  16. php开发公众号素材管理总结
  17. 微信小程序开发笔记,你收藏了吗?
  18. Qt调用7z实现压缩和解压缩
  19. Redis大厂面试20题
  20. 微信小程tree组件,无限递归

热门文章

  1. 计算机毕业设计PHP汽车美容店管理系统(源码+程序+VUE+lw+部署)
  2. 为何数据中心市场现在如此火?
  3. 手把手教你从零搭建深度学习项目(可下载PDF版)
  4. 14个强大的代码编辑网站
  5. Arm架构的M1芯片MacOs下如何安装Windows虚拟机
  6. 计算机管理库存量,轻松管控仓库的秘密-合理设定安全库存和最大库存量
  7. 展锐平台的温控策略介绍
  8. VBA中如何清空excel工作表内容
  9. 多商户商城系统功能演示
  10. 每天一个 Linux 命令(56):netstat命令