📜  R – 帕累托图(1)

📅  最后修改于: 2023-12-03 15:04:45.256000             🧑  作者: Mango

R – 帕累托图介绍

什么是帕累托图?

帕累托图是一种展示数据按照数量、频率或者体积之类的大小关系排序的图表。帕累托图用途广泛,可用于质量管理、供应链管理、市场调查等众多领域。

帕累托图被命名为Vilfredo Pareto,他在19世纪早期的经济学领域工作期间,发现了80/20原则,它表明在世界上大多数领域中,大约20%的原因会导致80%的结果。

如何制作帕累托图?

以下是使用R语言制作帕累托图的基本步骤:

  1. 收集需要的数据,并按照大小排序
  2. 计算数据的累积百分比
  3. 绘制柱形图并用累积百分比作为第二个y轴
  4. 添加累积百分比曲线
使用R语言制作帕累托图的示例代码:
# 创建数据集
data <- data.frame(product = c('Product A', 'Product B', 'Product C', 'Product D', 'Product E'),
                   quantity = c(500, 200, 300, 100, 50))

# 将数据按照quantity的大小排序
data <- data[order(-data$quantity),]

# 计算累积百分比
data$cum_percent <- cumsum(data$quantity)/sum(data$quantity) * 100

# 创建柱形图和折线图
par(mar=c(5, 8, 4, 2))
barplot(data$quantity, names.arg = data$product, ylim = c(0, max(data$quantity)*1.2),
        col = 'steelblue', main = 'Pareto Chart of Product Quantity', ylab = 'Quantity')
par(new = TRUE)
plot(data$cum_percent, pch = 19, axes = FALSE, type = 'b', col = 'red', ylim = c(0, 100),
     ylab = '', xlab = '')
axis(4, ylim = c(0, 100), col = 'red', col.axis = 'red')
mtext('Cumulative Percentage', side = 4, line = 3, col = 'red')

# 添加数据标签
text(x = barplot(data$quantity, ylim = c(0, max(data$quantity)*1.2),
                 col = 'steelblue', add = TRUE),
     y = data$quantity + max(data$quantity)*0.03, labels = paste0(data$quantity, ' (', round(data$cum_percent, 2), '%)'))
结论

帕累托图是一种强大的数据可视化工具,它可以轻松地将数据转换为易于理解的图表,帮助我们更好地理解数据之间的相关性。R语言为制作帕累托图提供了支持,使数据可视化更加容易。