Python 如何制作钟形曲线
众所周知,如果我们对随机变量的许多观测值取平均值,那么随着观测次数的增加,其分布将收敛到正态分布。例如,如果我们掷两个骰子并计算每次掷骰子时显示的随机值的总和,它将显示出钟形曲线,因为所测量的值将显示出正常的倾向。同时,如果仅进行50次测量,则不会显示出完美的钟形曲线;如果重复1000次或更多次,则会显示出良好的钟形曲线。
正态分布围绕其有限平均值对称。有时,我们需要展示这种钟形曲线以进行数据可视化。本文使用Python的Plotly库,通过三个不同的示例,使用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 = []
#throw 2 dices at same time and add their outcomes
#Repeat this 2000 times
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代码设计步骤
- 第一步 − 首先导入pandas和plotly。Plotly是用于制作不同类型图表的Python开源绘图库。
-
第二步 − 登录Kaggle并下载数据集(SOCR-HeightWeight.csv)以获取身高和体重。
-
第三步 − 读取此csv文件并创建数据框。打印此数据框。
-
第四步 − 使用plotly.figure_factory中的名称为create_distplot()的函数。
-
第五步 − 使用身高数据列制作图表。 (示例2) 或使用体重数据列制作图表。 (示例3)
-
第六步 − 使用cmd窗口运行程序。图表将在浏览器的新标签中打开,并显示钟形曲线。
保存用于数据分析的数据文件/ csv文件
为了制作钟形曲线,我们将使用Kaggle上提供的身高数据集(SOCR-HeightWeight.csv)。请登录Kaggle,然后从以下链接下载csv文件 –
https://www.kaggle.com/datasets/burnoutminer/heights-and-weightsdataset/download?datasetVersionNumber=1
创建一个名为Weight.py的文件。在该文件中写入以下代码。
# import this library to make the bell curve
import plotly.figure_factory as ffdemo
# Pandas library
import pandas as pdd
# read the csv and make a dataframe
datafrm = pdd.read_csv("C:\Users\saba2\Desktop\article\articles_py\bellcurve\SOCR-HeightWeight.csv")
#print the dataframe
print(datafrm)
#make the bell curve
bell_fig = ffdemo.create_distplot([datafrm["Height(Inches)"].tolist()], ["Height"], show_hist=False)
#show the bell curve
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 this library to make the bell curve
import plotly.figure_factory as ffdemo
# Pandas library
import pandas as pdd
# read the csv and make a dataframe
datafrm =
pdd.read_csv("C:\Users\saba2\Desktop\article\articles_py\bellcurve\SO
CR-HeightWeight.csv")
#print the dataframe
print(datafrm)
#make the bell curve
bell_fig = ffdemo.create_distplot([datafrm["Weight(Pounds)"].tolist()],
["Weight In Pounds"], show_hist=False)
#show the bell curve
bell_fig.show()
在命令窗口中运行Python文件−
将钟形曲线作为结果显示-示例3
在这篇Python和Plotly文章中,给出了使用Python库Plotly制作钟形曲线的三个不同示例。首先,介绍了一种方法,通过反复投掷两个骰子2000次并将它们的结果相加来生成一个正常趋势数据集。然后使用该数据集来制作钟形曲线。在示例2和示例3中,Python程序是基于从Kaggle获取的身高和体重数据集编写的,并使用该数据来制作钟形曲线。