我一直在使用R中的qcc包中的pareto.chart函数,我真的很喜欢它。现在我想将所有图形移植到ggplot2包中。但是,尽管有很好的文档,但我对ggplot2的了解非常有限,所以我无法弄清楚所有的细节。基本上我想要一个看起来像这样的情节
但改为使用ggplot2包。制作情节的代码如下:
library(qcc)
defect <- c(80, 27, 66, 94, 33)
names(defect) <- c("price code", "schedule date", "supplier code", "contact num.", "part num.")
pareto.chart(defect, ylab = "Error frequency", col=heat.colors(length(defect)))
有人有解决方案吗?帕累托图表已在here之前讨论过,但结果看起来与我想要的不相似。
答案 0 :(得分:9)
你走了:
library(ggplot2)
counts <- c(80, 27, 66, 94, 33)
defects <- c("price code", "schedule date", "supplier code", "contact num.", "part num.")
dat <- data.frame(
count = counts,
defect = defects,
stringsAsFactors=FALSE
)
dat <- dat[order(dat$count, decreasing=TRUE), ]
dat$defect <- factor(dat$defect, levels=dat$defect)
dat$cum <- cumsum(dat$count)
dat
ggplot(dat, aes(x=defect)) +
geom_bar(aes(y=count), fill="blue", stat="identity") +
geom_point(aes(y=cum)) +
geom_path(aes(y=cum, group=1))