基于python,Matplotlib绘制函数的等高线与三维图像

目录
  • 1. 网格点
  • 2. 等高线
  • 3. 三维图像

本篇文章记录一下函数的等高线及其三维图像的可视化方法。

本例绘制的函数为:

1. 网格点

  在绘制曲线之前,先了解一下网格点的绘制。比如绘制一个3x3的网格,那么就需要9个坐标点:

(0,2)-----(1,2)-----(2,2)

(0,1)-----(1,1)-----(2,1)

(0,0)-----(1,0)-----(2,0)

  将其x轴和y轴坐标分开表示:

# x轴:
[[0, 1, 2],
[0, 1, 2], 
[0, 1, 2]]
# y轴:
[[0, 0, 0],
[1, 1, 1], 
[2, 2, 2]]

  在numpy中可以使用np.meshgrid()来生成网格点:

import numpy as np
import matplotlib.pyplot as plt

# 10x10
x = np.linspace(-1.5, 1.5, num=10)
y = np.linspace(-1.5, 1.5, num=10)

# generate grid
X, Y = np.meshgrid(x, y)
plt.plot(X, Y, marker='.', linestyle='')
plt.grid(True)
plt.show()

2. 等高线

  绘制等高线需要的数据有点的坐标位置(x, y)以及坐标的高度z,高度z就是将坐标点(x, y)带入函数f ( x , y ) f(x, y)f(x,y)中计算得到的,在matplotlib中可以使用plt.contour()来绘制:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)

fig = plt.figure()
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)

# draw
ax = plt.contour(X, Y, f, levels=10, cmap=plt.cm.cool)
# add label
plt.clabel(ax, inline=True)
# plt.savefig('img1.png')
plt.show()

# add color
plt.contourf(X, Y, f, levels=10, cmap=plt.cm.cool)
# plt.colorbar()
# plt.savefig('img1.png')
plt.show()

 更多的api参数请参考官方文档

3. 三维图像

  函数的三维图像的绘制需要的数据与等高线一样,即坐标位置(x, y)以及坐标的高度z,在matplotlib中可以使用mpl_toolkits.mplot3d来绘制:

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

x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)

fig = plt.figure()
ax = Axes3D(fig)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)

ax.plot_surface(X, Y, f, cmap=plt.cm.cool)
# plt.savefig('img1.png')
plt.show()

到此这篇关于基于python,Matplotlib绘制函数的等高线与三维图像的文章就介绍到这了,更多相关Matplotlib绘制函数的等高线与三维图像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  有关mpl_toolkits.mplot3d的使用可以参考官方文档

  更多的颜色搭配可参考matplotlib的colormap官方手册

(0)

相关推荐

  • Python3使用Matplotlib 绘制精美的数学函数图形

    一个最最简单的例子: 绘制一个从 0 到 360 度完整的 SIN 函数图形 import numpy as np import matplotlib.pyplot as pt x = np.arange(0, 360) # 如果打印 x ,NumPy 会给你很好看的打印格式 # print(x) y = np.sin(x * np.pi / 180) pt.plot(x, y) pt.xlim(0, 360) pt.ylim(-1.2, 1.2) pt.title("SIN function&

  • python/Matplotlib绘制复变函数图像教程

    今天发现sympy依赖的库mpmath里也有很多数学函数,其中也有在复平面绘制二维图的函数cplot,具体例子如下 from mpmath import * def f1(z): return z def f2(z): return z**3 def f3(z): return (z**4-1)**(1/4) def f4(z): return 1/z def f5(z): return atan(z) def f6(z): return sqrt(z) cplot(f1) cplot(f2)

  • Python使用matplotlib的pie函数绘制饼状图功能示例

    本文实例讲述了Python使用matplotlib的pie函数绘制饼状图功能.分享给大家供大家参考,具体如下: matplotlib具体安装方法可参考前面一篇http://www.jb51.net/article/51812.htm,具体使用代码如下: #coding=utf8 import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt ''''' matplotlib.pyplot.pie函数:画一个饼

  • python使用Matplotlib绘制分段函数

    本文实例为大家分享了python使用Matplotlib绘制分段函数的具体代码,供大家参考,具体内容如下 环境 Python3 Mac OS 代码 # coding:utf-8 """ Author: roguesir Date: 2017/8/30 GitHub: https://roguesir.github.com Blog: http://blog.csdn.net/roguesir """ import numpy as np impo

  • Python3 用matplotlib绘制sigmoid函数的案例

    我就废话不多说了,大家还是直接看代码吧~ import matplotlib.pyplot as plt import numpy as np def sigmoid(x): # 直接返回sigmoid函数 return 1. / (1. + np.exp(-x)) def plot_sigmoid(): # param:起点,终点,间距 x = np.arange(-8, 8, 0.2) y = sigmoid(x) plt.plot(x, y) plt.show() if __name__

  • 使用 NumPy 和 Matplotlib 绘制函数图

    Matplotlib是Python的绘图库,它与Numpy一起使用 [引例] 画出y=2*x+5的函数图像 import numpy as np from matplotlib import pyplot as plt #设置横坐标取值.确定函数表达式 x = np.arange(1, 11) y = 2 * x + 5 #添加标题.横坐标.纵坐标标签 plt.title("Matplotlib demo") plt.xlabel("x axis caption")

  • 基于python,Matplotlib绘制函数的等高线与三维图像

    目录 1. 网格点 2. 等高线 3. 三维图像 本篇文章记录一下函数的等高线及其三维图像的可视化方法. 本例绘制的函数为: 1. 网格点   在绘制曲线之前,先了解一下网格点的绘制.比如绘制一个3x3的网格,那么就需要9个坐标点: (0,2)-----(1,2)-----(2,2) (0,1)-----(1,1)-----(2,1) (0,0)-----(1,0)-----(2,0)   将其x轴和y轴坐标分开表示: # x轴: [[0, 1, 2], [0, 1, 2],  [0, 1, 2

  • 基于Python+Matplotlib绘制渐变色扇形图与等高线图

    目录 渐变色扇形图 等高线 渐变色扇形图 使用 python - matplotlib 颜色地图plt.cm模块儿,来绘制出颜色渐变.更加好看的扇形图.也称彩虹图,但是也不限于彩虹图,可以选择的颜色地图(colormap)有: Paired, autumn, rainbow, gray, spring, Darks. 下边以颜色地图rainbow为例(彩虹图),写出以下代码,并展示各种颜色样式下的图像效果. import pandas as pd import numpy as np impor

  • 基于Python+Matplotlib实现直方图的绘制

    目录 1.关于直方图 2.plt.hist() 3. 绘制一幅简单的 频数 分布直方图 4. 绘制一幅 频率 分布直方图 5. 累积分布直方图(水平方向) 1.关于直方图 直方图 也称 质量分布图,虽然看起来像柱状图, 实际上区别又很大.直方图通常横轴表示数据类型,纵轴表示各数据类型的分布情况. 直方图又可以分为频数分布直方图和频率分布直方图.其绘制方法并无多少差异,只是描述的事件有所不同.频数分布直方图描述的是某事件的数量,而频率分布则描述的是其发生的频率. 而关于频率分布直方图,又可以理解为

  • python+matplotlib绘制3D条形图实例代码

    本文分享的实例主要实现的是Python+matplotlib绘制一个有阴影和没有阴影的3D条形图,具体如下. 首先看看演示效果: 完整代码如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # setup the figure and axes fig = plt.figure(figsize=(8, 3)) ax1 = fig.add_subplot(121

  • python+matplotlib绘制旋转椭圆实例代码

    旋转椭圆 实例代码: import matplotlib.pyplot as plt import numpy as np from matplotlib.patches import Ellipse delta = 45.0 # degrees angles = np.arange(0, 360 + delta, delta) ells = [Ellipse((1, 1), 4, 2, a) for a in angles] a = plt.subplot(111, aspect='equal

  • Python Matplotlib绘制动图平滑曲线

    目录 绘制动图 FuncAnimation ArtistAnimation 使用 scipy.ndimage.gaussian_filter1d() 高斯核类绘制平滑曲线 使用 scipy.interpolate.make_interp_spline() 样条插值类绘制平滑曲线 使用 scipy.interpolate.interp1d 插值类绘制平滑曲线 拟合曲线后绘制动图 绘制动图 FuncAnimation,它的使用要求简洁且定制化程度较高.如果想将很多图片合并为一个动图,那么Artist

  • Python matplotlib 绘制双Y轴曲线图的示例代码

    Matplotlib简介 Matplotlib是非常强大的python画图工具 Matplotlib可以画图线图.散点图.等高线图.条形图.柱形图.3D图形.图形动画等. Matplotlib安装 pip3 install matplotlib#python3 双X轴的 可以理解为共享y轴 ax1=ax.twiny() ax1=plt.twiny() 双Y轴的 可以理解为共享x轴 ax1=ax.twinx() ax1=plt.twinx() 自动生成一个例子 x = np.arange(0.,

  • 如何利用Python matplotlib绘制雷达图

    本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指标,雷达图几乎随处可见,应用场景非常多. 一.matplotlib绘制圆形雷达图 # coding=utf-8 import numpy as np import matplotlib.pyplot as plt results = [{"大学英语": 87, "高等数学": 79, "体育":

随机推荐