在本教程中,我们将使用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