如何在 Python 中制作钟形曲线?
众所周知的现象是,如果我们对一个随机变量的许多观测值取平均值,随着观测值的增加,分布会收敛到正态分布。例如,如果我们掷两个骰子并计算每次骰子上显示的随机值的总和,它将显示一个钟形曲线,因为测量的值将显示正常趋势。还观察到,如果只做 50 次,它不会显示完美的钟形曲线,如果重复 1000 次或更多,它将显示一个好的钟形曲线。
正态分布围绕其有限均值对称。有时,任务是显示这个钟形曲线以进行数据可视化。在本文中,使用三个不同的示例,名为 Plotly 的 Python 库与 Python 代码一起使用来制作钟形曲线。在第一个示例中,Python 代码用于使用两个骰子的随机结果之和来创建数据集,然后使用它来绘制曲线。在另外两个示例中,使用了 Kaggle 的身高和体重数据集,以显示身高和体重也呈现这些正常的钟形曲线。
示例 1:将两个骰子的结果相加,并使用此数据使用 Python 和 Plotly 绘制钟形曲线
示例 1 的 Python 代码设计步骤
步骤 1 - 首先导入 pandas 和 plotly。Plotly 是用于绘制不同类型图表的 Python 开源图形库。
步骤 2 - 现在使用 random.randint(1, 6) 获取骰子一和骰子二的随机值。添加这些值。
步骤 3 - 将所有这些总和插入 dice_oneplustwo[] 中。
步骤 4 - 打印存储在 dice_oneplustwo[] 中的值。
步骤 5 - 从 plotly.figure_factory,使用名为 create_distplot() 的函数并制作图表。
步骤 6 - 使用 cmd 窗口运行程序。图表将在浏览器的新选项卡中打开,并显示钟形曲线。
创建一个名为 dice.py 的文件。在此文件中写入以下代码
import plotly.figure_factory as ffdemo import random dice_oneplustwo = [] #同时投掷 2 个骰子并添加它们的结果 #重复此操作 2000 次 for i in range(0, 2000): diceone = random.randint(1, 6) dicetwo = random.randint(1, 6) dice_oneplustwo.append(diceone + dicetwo) print(dice_oneplustwo) dice_bellcurve = ffdemo.create_distplot([dice_oneplustwo],["Result"],show_hist = False) dice_bellcurve.show()
在命令窗口中运行 Python 文件
查看钟形曲线结果 - 示例 1
示例 2:使用 Kaggle 身高数据集显示钟形曲线
Python 代码设计步骤
步骤 1 - 首先导入 pandas 和 plotly。Plotly 是用于制作不同类型的图的 Python 开源图形库。
步骤 2 - 登录 Kaggle 并下载身高和体重的数据集
(SOCR-HeightWeight.csv)。
步骤 3 - 读取此 csv 文件并制作数据框。打印此数据框。
步骤 4 - 从 plotly.figure_factory 中,使用名为 create_distplot() 的函数。
步骤 5 - 使用高度数据列制作图表。(示例 2)或使用权重数据列制作图表。(示例 3)
步骤 6 - 使用 cmd 窗口运行程序。图表将在浏览器的新选项卡中打开,并显示钟形曲线。
保存数据分析所需的数据文件/csv 文件
为了制作钟形曲线,我们将使用 Kaggle 上的高度数据集 (SOCR-HeightWeight.csv)。登录 Kaggle,然后从此链接下载 csv 文件 −
https://www.kaggle.com/datasets/burnoutminer/heights-and-weightsdataset/download?datasetVersionNumber=1
创建一个名为 Weight.py 的文件。在此文件中写入以下代码。
# 导入此库以制作钟形曲线 import plotly.figure_factory as ffdemo # Pandas 库 import pandas as pdd # 读取 csv 并制作数据框 datafrm = pdd.read_csv("C:\Users\saba2\Desktop\article\articles_py\bellcurve\SOCR-HeightWeight.csv") # 打印数据框 print(datafrm) # 制作钟形曲线 bell_fig = ffdemo.create_distplot([datafrm["Height(Inches)"].tolist()], ["Height"], show_hist=False) # 显示钟形曲线 bell_fig.show()
在命令窗口中运行 python 文件−
查看钟形曲线结果 - 示例 2
示例 3:使用 Kaggle 数据集作为权重显示钟形曲线。
Python 代码设计步骤
步骤 1 − 导入所需的库。 Plotly 是 Python 的开源图形库,用于制作不同类型的图表。
第 2 步 - 登录 Kaggle 并下载数据集
(SOCR-HeightWeight.csv) for heights and weights
步骤 3 - 读取此 csv 文件并创建数据框。打印此数据框。
步骤 4 - 从 plotly.figure_factory 中使用名为 create_distplot() 的函数。
步骤 5 - 利用权重数据列制作图表。
步骤 6 - 使用 cmd 窗口部署程序。图表将在浏览器的新选项卡中打开并显示钟形曲线。
保存数据分析所需的数据文件/csv 文件 -
为了制作钟形曲线,我们将使用 Kaggle 上的高度数据集 (SOCR-HeightWeight.csv)。登录 Kaggle,然后从此链接下载 CSV 文件 −
https://www.kaggle.com/datasets/burnoutminer/heights-and-weightsdataset/download?datasetVersionNumber=1
创建一个名为 Weight.py 的文件。在此文件中写入以下代码。
# 导入此库以制作钟形曲线 import plotly.figure_factory as ffdemo # Pandas 库 import pandas as pdd # 读取 csv 并制作数据框 datafrm = pdd.read_csv("C:\Users\saba2\Desktop\article\articles_py\bellcurve\SO CR-HeightWeight.csv") #打印数据框 print(datafrm) #制作钟形曲线 bell_fig = ffdemo.create_distplot([datafrm["Weight(Pounds)"].tolist()], ["Weight In Pounds"], show_hist=False) #显示钟形曲线 bell_fig.show()
在命令窗口 −
查看钟形曲线作为结果 - 示例 3
在这篇 Python 和 Plotly 文章中,给出了三个不同的示例,展示了如何使用名为 Plotly 的 Python 库制作钟形曲线的方法。首先,给出了一种方法,通过重复投掷两个骰子 2000 次并添加它们的结果来制作正常趋势数据集。然后使用该数据集制作钟形曲线。在示例 2 和示例 3 中,Python 程序是根据从 Kaggle 获取的身高和体重数据集编写的,并且该数据用于制作钟形曲线。