Вопрос по ggplot2, r – Как воспроизвести график pareto.chart из пакета qcc, используя ggplot2?

6

Я использую функцию pareto.chart из пакета qcc в R, и мне это очень нравится. Теперь я хотел бы перенести всю мою графику на использование пакета ggplot2. Однако мои знания ggplot2 очень ограничены, несмотря на отличную документацию, поэтому я не могу разобраться во всех деталях. В основном я хочу сюжет, похожий на этот

A simple pareto chart made by the pareto.chart function in the qcc package

но вместо этого сделано с пакетом ggplot2. Код для создания сюжета приведен ниже:

<code>    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)))
</code>

У кого-нибудь есть решение для этого? Диаграмма Парето обсуждалась ранееВот но результат не выглядит ничего похожего на то, что я хочу.

Ваш Ответ

1   ответ
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))

enter image description here

Error: User Rate Limit Exceeded Dr. Mike
Error: User Rate Limit Exceeded Dr. Mike
ggplotError: User Rate Limit Exceeded

Похожие вопросы