如何将一维绘图转换为二维轮廓线绘图?

时间:2019-09-12 15:45:41

标签: python matplotlib probability contourf

如果我生成一维概率分布并得到如下结果: enter image description here

假设y轴与x轴相同,如何将其转换为二维轮廓线图。在下面,我创建了一个图像,该图像表示我希望结果看起来像什么,其中每个波段代表一系列概率。波段会随着x的变化而变化。

enter image description here

我的生成一维绘图的代码如下:

import matplotlib.pyplot as plt
import numpy as np

def gaussian(x, mu, sig):
    return np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.)))

x_values = np.linspace(-5, 5, 120)
y = gaussian(x_values, 0, 1)

plt.figure()
plt.plot(x_values,y)
plt.show()

1 个答案:

答案 0 :(得分:0)

弄清楚了。代码是:

import matplotlib.pyplot as plt
import numpy as np

def gaussian(x, mu, sig):
    return np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.)))

x_values = np.linspace(-5, 5, 120)
y_values = np.linspace(-5, 5, 120)
[xx,yy] = np.meshgrid(x_values,y_values)
 xx = np.concatenate(xx)
yy = np.concatenate(yy)

y = gaussian(xx, 0, 1)

plt.figure()
plt.contourf(x_values,y_values,y.reshape(len(x_values),len(y_values)))
plt.colorbar()
plt.show()

它给出结果: enter image description here