首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:如何绘制三维数组的正态分布

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

Stack Overflow用户
提问于 2018-08-03 02:40:35
回答 1查看 750关注 0票数 0

我有一个名为temprSubset的三维数组,它是我在两个维度上的平均值。

代码:

代码语言:javascript
复制
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数组中绘制每个平均值的标准偏差曲线,但我迷路了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 05:34:05

最简单的方法是使用hist函数。仓位数量的选择可能会显着改变图形的形状。

另一种提供平滑曲线的方法是kernel density estimation。带宽的选择也可以改变所获得的图形的形状。

代码语言:javascript
复制
import numpy as np

import matplotlib.pyplot as plt
%matplotlib inline

# Generate some data
data = np.random.normal( size=(5, 50, 150) )  # a random 3D array
average_axes01 = data.mean(axis=(0, 1))

# Using the Kernel density estimation:
from scipy.stats import gaussian_kde

prob_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');

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51660247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档