c语言编程笔录

首页 >   > 笔记大全

笔记大全

基于Python如何实现帕累托图

更新时间:2023-11-12
<前言> 帕累托图是一种用于显示成本、效益和原因的图表,也被称为二八定律。基于这个定律,有时我们需要展示 20% 的事物占据了 80% 的影响力。这样的分布在很多领域中都有着应用,例如财务分析、社交媒体分析、供应链管理等。 Python 作为一种流行的编程语言,可用于制作各种类型的图表,包括帕累托图。在本文中,我们将讨论如何使用 Python 设计和绘制帕累托图,覆盖从数据准备到可视化输出的各种步骤。

1.导入依赖项和数据准备

首先,我们需要导入一些 Python 包,这些包将帮助我们绘制帕累托图。其中最重要的是 Matplotlib 和 Pandas。Matplotlib 是一个广泛使用的 Python 数据可视化库,Pandas 是一个专门用于数据处理和分析的库。
import pandas as pd
import matplotlib.pyplot as plt

# 创建数据框
data = {
    'Items': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
    'Costs': [20, 25, 10, 15, 5, 30, 40, 50, 35, 45],
    'Benefits': [100, 80, 70, 60, 50, 40, 30, 20, 10, 5]
}

df = pd.DataFrame(data)
此处我们以虚拟数据为例演示帕累托图的制作过程。数据包含了项目名称、成本和收益等字段。接下来我们需要计算累计成本和累计收益。

2.计算和排序数据

在帕累托图中,我们需要计算累计成本和累计收益,以对项目进行排名。这可以通过 Pandas 库的 cumsum() 和 sort_values() 方法实现。
# 计算成本百分比和收益百分比
df['CostsPct'] = df['Costs'].cumsum() / df['Costs'].sum() * 100
df['BenefitsPct'] = df['Benefits'].cumsum() / df['Benefits'].sum() * 100

# 根据成本百分比降序排列
df = df.sort_values('CostsPct', ascending=False)
在这个示例中,我们创建了两个新的列:成本百分比和收益百分比。然后,我们使用 sort_values() 方法按照成本百分比进行排列。

3.绘制帕累托图

现在,我们已经准备好绘制帕累托图了。我们将使用 Matplotlib 库的 bar() 和 plot() 方法。bar() 方法用于绘制柱状图,plot() 方法用于绘制折线图。我们还将添加标签、颜色和图例等元素。
fig, ax = plt.subplots()

# 绘制成本柱状图
ax.bar(df['Items'], df['Costs'], color='tab:red')

# 添加收益折线图
ax2 = ax.twinx()
ax2.plot(df['Items'], df['BenefitsPct'], color='tab:blue', marker='D', ms=7)

# 添加标签
ax.set_xlabel('Items', fontsize=12)
ax.set_ylabel('Costs', color='tab:red', fontsize=12)
ax2.set_ylabel('Benefits (%)', color='tab:blue', fontsize=12)

# 修改刻度
ax.tick_params(axis='y', labelcolor='tab:red')
ax2.tick_params(axis='y', labelcolor='tab:blue')

# 添加图例
ax.legend(['Costs'], loc='upper left')
ax2.legend(['Benefits'], loc='upper right')

# 调整布局并展示图像
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
plt.show()
在这个示例中,我们使用 ax.twinx() 方法添加了双 y 轴。我们还使用了 Marker 和 Label 等参数来自定义折线图的样式。最后,我们调用了 legend() 方法来添加图例。

总结

本文介绍了如何使用 Python 和 Matplotlib 库制作帕累托图。我们从数据准备开始,使用 Pandas 计算和排序数据。然后,我们使用 Matplotlib 绘制柱状图和折线图,并添加了标签和图例等元素。帕累托图是一种有用的工具,可用于分析公司利润和成本、商品销售和供应链等领域。掌握它的制作方法有助于我们更好地理解数据并做出更明智的决策。