Matplotlib 中等高线图(contour)的绘制

阅读量:     Authors: 阳哥 PYTHONVISUALIZATION
Matplotlib

Table of Contents

前言

在此前的文章里,我们介绍了 Numpy 中 meshgrid 函数的应用,并提到了等高线图的使用。

今天,我们来介绍一下 matplotlib 中等高线图的绘制。

先上图来看一下等高线图的绘制效果,是不是很炫啊。

下面我们来分步骤介绍 matplotlib 中等高线图(contour)的绘制。

数据初始化

import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

%matplotlib inline

# 定义等高线高度函数
def f(x, y):
    return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(- x ** 2 - y ** 2)

# 数据数目
n = 256
# 定义x, y
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)

# 生成网格数据
X, Y = np.meshgrid(x, y)

注:数据初始化过程中用到了 Numpy 的 meshgrid 函数,有兴趣的同学可以了解下这个函数的使用,链接如下:

仅绘制等高线

# 设置图像大小尺寸
plt.figure(figsize=(10,6))

# 填充等高线的颜色, 8是等高线分为几部分
plt.contour(X, Y,f(X, Y), 8,alpha = 0.75, cmap = plt.cm.hot)

结果如下:

仅填充等高区域颜色:

# 设置图像大小尺寸
plt.figure(figsize=(10,6))

# 填充等高区域的颜色, 8是等高线分为几部分
plt.contourf(X, Y,f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)

结果如下:

绘制完整的等高线图

# 设置图像大小尺寸
plt.figure(figsize=(10,6))

# 填充等高线的颜色, 8是等高线分为几部分
plt.contourf(X, Y, f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)

C = plt.contour(X,Y, f(X,Y), 8, colors='black', linewidth=8)

# 绘制等高线数据
plt.clabel(C, inline = True, fontsize = 10)

# 去除坐标轴
plt.xticks(())
plt.yticks(())

plt.show()

结果如下:

是不是很容易实现啊,赶快动手来试试吧。


对我的文章感兴趣的朋友,可以关注我的微信公众号「Python数据之道」(ID:PyDataLab),接收我的更新通知。

« Previous Next »