如何在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代码设计步骤
步骤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 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的文章中,给出了三个不同的示例,说明了如何使用名为Plotly的Python库创建钟形曲线。首先,给出了一个方法,通过重复投掷两个骰子2000次并添加其结果来创建一个具有正态趋势的数据集。然后使用此数据集来创建钟形曲线。在示例2和示例3中,根据从Kaggle获取的身高和体重数据集编写了Python程序,并使用此数据创建了钟形曲线。