如何在Python中创建累积频数曲线图?
累积频数曲线图以图形方式表示数据集的累积分布函数 (CDF),有时也称为累积频率曲线。它用于检查数据分布并发现模式和趋势。Python 提供了多个库和工具来创建累积频数曲线图,例如 Matplotlib、Pandas 和 Numpy。在本教程中,我们将学习如何使用 Matplotlib 在 Python 中生成累积频数曲线图。
要创建累积频数曲线图,我们需要导入必要的库。在本例中,我们将使用 Matplotlib、Pandas 和 Numpy。Matplotlib 是 Python 中流行的数据可视化库,用于创建交互式绘图和图表。另一方面,Numpy 用于执行复杂的数学运算。Pandas 是另一个广泛使用的 Python 库,专门用于数据操作和分析。
语法
plt.plot(*np.histogram(data, bins), 'o-')
在此语法中,“data”是要创建累积频数曲线图的数据集。“np.histogram”函数确定数据的频率分布,并返回直方图的值和 bin 边界。“plt.plot”用于创建累积频数曲线图,使用“'o- '”格式字符串来绘制数据点并用线连接它们。然后,“*”运算符将直方图的值和 bin 边界作为单独的参数解包到“plt.plot”。
示例
这是一个简单的示例,它创建一个累积频数曲线图来可视化骰子掷出结果列表的累积频率分布。
import numpy as np import matplotlib.pyplot as plt # List of dice rolls rolls = [1, 2, 3, 4, 5, 6, 3, 6, 2, 5, 1, 6, 4, 2, 3, 5, 1, 4, 6, 3] # Calculate the cumulative frequency bins = np.arange(0, 8, 1) freq, bins = np.histogram(rolls, bins=bins) cumulative_freq = np.cumsum(freq) # Create the ogive graph plt.plot(bins[1:], cumulative_freq, '-o') plt.xlabel('Dice Rolls') plt.ylabel('Cumulative Frequency') plt.title('Ogive Graph of Dice Rolls') plt.show()
首先,我们创建了一个累积频数曲线图来可视化骰子掷出结果列表的累积频率分布,这是通过导入必要的模块 NumPy 和 Matplotlib 来实现的。然后,代码定义了一个骰子掷出结果列表,并使用 NumPy 的直方图函数生成数据的“直方图”,指定 bin 的数量和数据可以取的值的范围。接下来,使用 NumPy 的“cumsum”函数表示数据的累积频率。
最后,使用 Matplotlib 的“plot”函数将累积频率与每个 bin 的上限绘制在一起,形成累积频数曲线图。生成的累积频数曲线图显示了骰子掷出结果的累积频率分布,其中 x 轴表示掷出结果的值,y 轴表示这些值到某个点的累积频率。该图可用于分析骰子掷出结果的频率和分布。
输出
示例
此示例演示了累积频数曲线图,用于可视化 0 到 100 之间 500 个随机数的分布。
import numpy as np import matplotlib.pyplot as plt # Generate random data data = np.random.randint(0, 100, 500) # Calculate the cumulative frequency bins = np.arange(0, 110, 10) freq, bins = np.histogram(data, bins=bins) cumulative_freq = np.cumsum(freq) # Create the ogive graph plt.plot(bins[1:], cumulative_freq, '-o') plt.xlabel('Data') plt.ylabel('Cumulative Frequency') plt.title('Ogive Graph of Random Data') plt.show()
在此示例中,我们首先使用 NumPy 生成 0 到 100 之间 500 个随机数的数据集。然后使用 NumPy 确定数据的累积频率,bin 宽为 10。最后,使用 Matplotlib 将累积频率与每个 bin 的上限绘制在一起,生成累积频数曲线图。此示例演示了如何使用随机生成的数据在 Python 中创建累积频数曲线图。
输出
我们学习了如何利用 Matplotlib 模块在 Python 中创建累积频数曲线图,这是一个使用 matplotlib 库的简单过程。通过加载数据、计算累积频率和绘制结果,您可以轻松可视化数据集的分布并识别任何模式或趋势。您可以使用标签、标题和样式自定义图表,使其更具视觉吸引力和信息量。累积频数曲线图是统计分析中有用的工具,可以表示各种数据,从收入分配到考试分数。