13 kwi 2012, 12:15 z Dr. Mike

Jak odtworzyć wykres pareto.chart z pakietu qcc za pomocą ggplot2?

Korzystałem z funkcji pareto.chart z pakietu qcc w R i naprawdę to lubię. Teraz chciałbym przenieść wszystkie moje grafiki, aby zamiast tego użyć pakietu ggplot2. Jednak moja wiedza na temat ggplot2 jest bardzo ograniczona pomimo doskonałej dokumentacji, więc nie mogę zrozumieć wszystkich szczegółów. Zasadniczo chcę taką fabułę

ale zamiast tego został utworzony za pomocą pakietu ggplot2. Kod do produkcji fabuły znajduje się poniżej:

<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>

Czy ktoś ma na to rozwiązanie? Wykres pareto został omówiony wcześniejtutaj ale wynik nie wygląda podobnie do tego, czego chcę.

questionAnswers (0)

13 kwi 2012, 10:51 z Andrie

Proszę bardzo:

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

yourAnswerToTheQuestion