Social LSTM论文中有一张展示行人运动轨迹概率分布的效果图,今天抽空研究下如何用Python可视化二维高斯分布(Gauss Distribution)。
可视化二维高斯分布(Gauss Distribution)本质上是以2D方式展示3D数据(第三维是概率密度),Python中四个matplotlib函数(plt.contour()、plt.contourf()、plt.imshow()、plt.pcolormesh())可以帮助我们完成这一目标。
1. 简单的示例
先引入必要的python依赖文件。
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')
import numpy as np
1.1 目标函数
目标函数将平面坐标(x,y)映射为z值输出。
def f(x, y):
return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
1.2 Contour Plot
plt.contour()函数有三个参数:grid of x values, grid of y values 和 grid of z values, 其中,x和y表示在plot上的位置,z表示Contour Levels。一般使用np.meshgrid()函数