Matplotlib 中等高线图(contour)的绘制
阅读量:次 Authors: 阳哥 PYTHONVISUALIZATION
Matplotlib
阅读量:次 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),接收我的更新通知。