在本教程中,我们将使用NumPy生成多种随机数据分布,并使用Seaborn进行可视化展示。具体步骤如下:
首先,你需要确保安装了以下Python库:NumPy和Seaborn。你可以使用以下命令来安装它们:
pip install numpy seaborn matplotlib
我们将生成以下几种常见的随机数据分布:
import numpy as np
# 生成1000个正态分布的随机数,均值为0,标准差为1
mu, sigma = 0, 1 # 均值和标准差
size = 1000 # 样本量
normal_data = np.random.normal(mu, sigma, size)
# 生成1000个均匀分布的随机数,范围为[0, 1]
low, high = 0, 1 # 范围
size = 1000 # 样本量
uniform_data = np.random.uniform(low, high, size)
# 生成1000个泊松分布的随机数,参数lambda=5
lam = 5 # 参数
size = 1000 # 样本量
poisson_data = np.random.poisson(lam, size)
# 生成1000个二项分布的随机数,参数为n=10, p=0.5
n, p = 10, 0.5 # 试验次数和成功概率
size = 1000 # 样本量
binomial_data = np.random.binomial(n, p, size)
接下来,我们将使用Seaborn库来对生成的不同随机分布数据进行可视化。以下是绘制直方图和核密度估计(KDE)的示例。
import seaborn as sns
import matplotlib.pyplot as plt
# 设置Seaborn的风格
sns.set(style="whitegrid")
# 创建一个图形对象和轴对象
fig, ax = plt.subplots()
# 使用Seaborn绘制直方图和KDE
sns.histplot(normal_data, kde=True, ax=ax, bins=30, color='blue')
# 设置标题和标签
ax.set(title='Normal Distribution (mu=0, sigma=1)', xlabel='Value', ylabel='Frequency')
# 显示图形
plt.show()
fig, ax = plt.subplots()
sns.histplot(uniform_data, kde=True, ax=ax, bins=30, color='green')
ax.set(title='Uniform Distribution [0, 1]', xlabel='Value', ylabel='Frequency')
plt.show()
fig, ax = plt.subplots()
sns.histplot(poisson_data, kde=True, ax=ax, bins=30, color='red')
ax.set(title='Poisson Distribution (lambda=5)', xlabel='Value', ylabel='Frequency')
plt.show()
fig, ax = plt.subplots()
sns.histplot(binomial_data, kde=True, ax=ax, bins=n+1, color='purple')
ax.set(title='Binomial Distribution (n=10, p=0.5)', xlabel='Value', ylabel='Frequency')
plt.show()
以下是一个完整的Python脚本,展示了如何生成和可视化上述所有随机分布数据:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 生成随机分布数据
normal_data = np.random.normal(0, 1, 1000)
uniform_data = np.random.uniform(0, 1, 1000)
poisson_data = np.random.poisson(5, 1000)
binomial_data = np.random.binomial(10, 0.5, 1000)
# 设置Seaborn的风格
sns.set(style="whitegrid")
# 可视化正态分布数据
fig, ax = plt.subplots()
sns.histplot(normal_data, kde=True, ax=ax, bins=30, color='blue')
ax.set(title='Normal Distribution (mu=0, sigma=1)', xlabel='Value', ylabel='Frequency')
plt.show()
# 可视化均匀分布数据
fig, ax = plt.subplots()
sns.histplot(uniform_data, kde=True, ax=ax, bins=30, color='green')
ax.set(title='Uniform Distribution [0, 1]', xlabel='Value', ylabel='Frequency')
plt.show()
# 可视化泊松分布数据
fig, ax = plt.subplots()
sns.histplot(poisson_data, kde=True, ax=ax, bins=30, color='red')
ax.set(title='Poisson Distribution (lambda=5)', xlabel='Value', ylabel='Frequency')
plt.show()
# 可视化二项分布数据
fig, ax = plt.subplots()
sns.histplot(binomial_data, kde=True, ax=ax, bins=11, color='purple')
ax.set(title='Binomial Distribution (n=10, p=0.5)', xlabel='Value', ylabel='Frequency')
plt.show()
通过运行上述代码,你将能够生成并可视化不同类型的随机数据分布,帮助你理解和展示这些分布的特性。
原文链接:codingdict.net