通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

python中如何绘制帕累托图

python中如何绘制帕累托图

在Python中绘制帕累托图,主要使用两个库:Matplotlib和Pandas。帕累托图是一种条形图,按值的降序排列,通常与累计百分比线结合使用。通过帕累托图可以帮助识别最重要的因素它广泛应用于质量管理和业务分析。接下来,我将详细介绍如何使用Python绘制帕累托图。

一、安装所需库

在开始绘图之前,确保你已经安装了所需的库。如果你还没有安装,可以使用以下命令进行安装:

pip install matplotlib pandas

二、导入库并准备数据

在绘制帕累托图之前,我们需要导入必要的库并准备数据。以下是一个简单的示例数据集:

import matplotlib.pyplot as plt

import pandas as pd

示例数据

data = {

'Category': ['A', 'B', 'C', 'D', 'E'],

'Value': [50, 30, 15, 4, 1]

}

df = pd.DataFrame(data)

三、绘制帕累托图

1、创建条形图

首先,我们需要创建一个按值降序排列的条形图:

df = df.sort_values(by='Value', ascending=False)

绘制条形图

fig, ax = plt.subplots()

ax.bar(df['Category'], df['Value'], color='C0')

2、计算累计百分比并绘制折线图

接下来,我们需要计算累计百分比,并在同一个图上绘制折线图:

# 计算累计百分比

df['Cumulative Percentage'] = df['Value'].cumsum() / df['Value'].sum() * 100

绘制累计百分比折线图

ax2 = ax.twinx()

ax2.plot(df['Category'], df['Cumulative Percentage'], color='C1', marker='D', ms=7)

ax2.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: '{:.0f}%'.format(x)))

3、图形美化

为了使图形更美观,我们可以添加一些标签和标题:

# 添加标题和标签

ax.set_title('Pareto Chart')

ax.set_xlabel('Category')

ax.set_ylabel('Value')

ax2.set_ylabel('Cumulative Percentage')

plt.show()

四、完整代码

将上述步骤整合在一起,得到完整的绘制帕累托图的代码:

import matplotlib.pyplot as plt

import pandas as pd

示例数据

data = {

'Category': ['A', 'B', 'C', 'D', 'E'],

'Value': [50, 30, 15, 4, 1]

}

df = pd.DataFrame(data)

df = df.sort_values(by='Value', ascending=False)

绘制条形图

fig, ax = plt.subplots()

ax.bar(df['Category'], df['Value'], color='C0')

计算累计百分比

df['Cumulative Percentage'] = df['Value'].cumsum() / df['Value'].sum() * 100

绘制累计百分比折线图

ax2 = ax.twinx()

ax2.plot(df['Category'], df['Cumulative Percentage'], color='C1', marker='D', ms=7)

ax2.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: '{:.0f}%'.format(x)))

添加标题和标签

ax.set_title('Pareto Chart')

ax.set_xlabel('Category')

ax.set_ylabel('Value')

ax2.set_ylabel('Cumulative Percentage')

plt.show()

五、深入解析帕累托图的应用

1、质量管理中的应用

帕累托图在质量管理中广泛应用,通过帕累托图可以识别出导致问题的最主要因素。例如,在生产过程中,可以通过帕累托图识别出导致产品缺陷的最主要原因,从而集中资源进行改进。

2、业务分析中的应用

在业务分析中,帕累托图可以帮助识别出对业务影响最大的因素。例如,通过分析客户投诉的原因,可以识别出最主要的投诉类型,从而改进客户服务。

六、定制化帕累托图

1、调整颜色和样式

可以通过调整颜色和样式,使帕累托图更符合个人或企业的风格:

# 自定义颜色和样式

ax.bar(df['Category'], df['Value'], color='#1f77b4')

ax2.plot(df['Category'], df['Cumulative Percentage'], color='#ff7f0e', marker='o', linestyle='--')

2、添加数据标签

为了使图形更加直观,可以在条形图和折线图上添加数据标签:

# 添加条形图数据标签

for i in range(len(df)):

ax.text(i, df['Value'].iloc[i] + 1, df['Value'].iloc[i], ha='center')

添加折线图数据标签

for i in range(len(df)):

ax2.text(i, df['Cumulative Percentage'].iloc[i] + 1, f"{df['Cumulative Percentage'].iloc[i]:.1f}%", ha='center')

七、总结

通过上述步骤,我们可以使用Python中的Matplotlib和Pandas库轻松绘制帕累托图。帕累托图不仅可以帮助我们识别出最重要的因素,而且可以帮助我们集中资源进行改进,从而提高效率和效果。在实际应用中,我们可以根据具体需求对帕累托图进行定制化,使其更加符合个人或企业的风格和需求。无论是在质量管理还是业务分析中,帕累托图都是一种非常有用的工具。

相关问答FAQs:

如何在Python中绘制帕累托图?
在Python中,可以使用Matplotlib和Pandas库来绘制帕累托图。首先,确保安装了这两个库。然后,您可以通过计算数据的频率,并将其按降序排列,来创建帕累托图。以下是一个基本的步骤:导入数据,计算频率,绘制条形图并叠加累计百分比线。

绘制帕累托图时需要注意哪些数据准备步骤?
在准备数据时,确保您的数据是分类的,并且能够反映出问题的主要来源。数据需要进行整理和清洗,去除无效值和重复项。接着,计算每个类别的出现频率,并对其进行排序,以便在图中展示。

使用哪些Python库可以帮助绘制帕累托图?
除了Matplotlib和Pandas,Seaborn和Plotly也是很好的选择。Seaborn提供了更美观的图形,而Plotly允许您创建交互式图表。根据您的需求和数据的复杂程度,选择适合的库可以提高绘图的效率和效果。

如何解释帕累托图中的数据和趋势?
帕累托图通常显示了各个类别的相对重要性。通过观察条形图的高度,您可以识别出主要问题来源。累计百分比线则帮助您理解哪些类别的组合占据了大多数问题。通常,帕累托原则(80/20法则)在此图中得以体现,帮助分析师集中精力解决最重要的问题。

相关文章