生成一些样本量为n=30,n=50和n=100的标准正态分布数据。对数据进行不同组距的分组,并绘制统计直方图。使用subplot将不同组距参数下的统计直方图绘制于同一绘图窗口中。
时间: 2024-10-14 10:13:43 浏览: 24
在Python中,我们可以使用`numpy`库生成标准正态分布的数据,然后使用`matplotlib`库中的`hist`函数创建直方图并利用`subplots`功能在同一窗口显示不同样本量的结果。以下是一个简单的步骤:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义样本量
sample_sizes = [30, 50, 100]
bin_counts = [10, 20, 40] # 不同组距
fig, axs = plt.subplots(len(sample_sizes), figsize=(10, 6), sharex=True)
for i, n in enumerate(sample_sizes):
# 生成标准正态分布数据
data = np.random.randn(n)
# 分组并绘制直方图
axs[i]..hist(data, bins=bin_counts[i], density=True, alpha=0.5, edgecolor='black')
axs[i].set_title(f"Sample Size: {n}")
axs[i].set_ylabel('Probability Density')
# 添加共享X轴标题和调整间距
plt.xlabel('Standard Normal Distribution Values')
plt.tight_layout()
# 显示图形
plt.show()
相关问题
在matlab中编写程序:生成一些样本量为n=30,n=50和n=100的标准正态分布数据。对数据进行不同组距的分组,并绘制统计直方图。使用subplot将不同组件参数下的统计直方图绘制与同一绘图窗口中。
好的,以下是可以实现你的要求的 Matlab 代码:
```matlab
% 生成标准正态分布数据
data_n30 = randn(1, 30);
data_n50 = randn(1, 50);
data_n100 = randn(1, 100);
% 不同组距的分组
bin_edges_10 = linspace(min(data_n100), max(data_n100), 11); % 组距为10
bin_edges_5 = linspace(min(data_n100), max(data_n100), 21); % 组距为5
bin_edges_2 = linspace(min(data_n100), max(data_n100), 51); % 组距为2
% 绘制统计直方图
figure
subplot(3, 3, 1)
histogram(data_n30, 'BinEdges', bin_edges_10)
title('n=30, BinWidth=10')
subplot(3, 3, 2)
histogram(data_n30, 'BinEdges', bin_edges_5)
title('n=30, BinWidth=5')
subplot(3, 3, 3)
histogram(data_n30, 'BinEdges', bin_edges_2)
title('n=30, BinWidth=2')
subplot(3, 3, 4)
histogram(data_n50, 'BinEdges', bin_edges_10)
title('n=50, BinWidth=10')
subplot(3, 3, 5)
histogram(data_n50, 'BinEdges', bin_edges_5)
title('n=50, BinWidth=5')
subplot(3, 3, 6)
histogram(data_n50, 'BinEdges', bin_edges_2)
title('n=50, BinWidth=2')
subplot(3, 3, 7)
histogram(data_n100, 'BinEdges', bin_edges_10)
title('n=100, BinWidth=10')
subplot(3, 3, 8)
histogram(data_n100, 'BinEdges', bin_edges_5)
title('n=100, BinWidth=5')
subplot(3, 3, 9)
histogram(data_n100, 'BinEdges', bin_edges_2)
title('n=100, BinWidth=2')
```
这段代码会生成一个带有 9 个子图的图形窗口,每个子图对应不同的样本量和组距。你可以根据需要更改组距大小和样本量,也可以自定义图形窗口的排列方式。
阅读全文