猿问

Python:如何绘制3维数组的正态分布

我有一个3维数组temprSubset,它取了2维的平均值。


代码:


f=MFDataset(filenames)


temprSubset = f.variables['tc'][ : , latitude_lower_limit:latitude_upper_limit , longitude_lower_limit:longitude_upper_limit,] 


tempavg1=temprSubset.mean(axis=tuple(range(0,2)))

我想绘制tempavg1数组中每个平均值的标准偏差曲线,但我很迷惑。


一只斗牛犬
浏览 191回答 1
1回答

尚方宝剑之说

简单的方法是使用该hist功能。箱数的选择可能会大大改变图形的形状。给出平滑曲线的另一种方法是核密度估计。带宽的选择也可能会更改获得的图形的形状。import numpy as npimport matplotlib.pyplot as plt%matplotlib inline# Generate some datadata = np.random.normal( size=(5, 50, 150) )  # a random 3D arrayaverage_axes01 = data.mean(axis=(0, 1))# Using the Kernel density estimation:from scipy.stats import gaussian_kdeprob_density = gaussian_kde(average_axes01)std = average_axes01.std()x_fine = np.linspace(-3*std, 3*std, 29)probs = prob_density(x_fine)plt.plot(x_fine, probs, 'r', linewidth=2);# Using the histogram:plt.hist(average_axes01, bins=7, normed=True, alpha=.4)plt.ylabel('probability density function'); plt.xlabel('values');
随时随地看视频慕课网APP

相关分类

Python
我要回答