2012-04-13 12 views
4

私はRのqccパッケージからpareto.chart関数を使用しています。私は本当にそれが好きです。今ではggplot2パッケージを代わりに使用するためにすべてのグラフィックスを移植したいと考えています。しかし、ggplot2についての私の知識は非常に限られているので、すべての詳細を把握することはできません。基本的に私はこのgccplot2を使ってqccパッケージからpareto.chartプロットを再現するには?

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

代わり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の前に議論されていますが、結果は私が欲しいものに似ていません。

答えて

8

ここに行く:、

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

+0

グレートあなたAndrieに感謝。また、右Y軸を追加するためにソリューションをどのように拡張することができるかも知っていますか?私は "累積パーセント"軸を参照しています。 –

+0

'ggplot'は非常に健全な理論上の理由から、2番目のy軸の追加をサポートしていません。 – Andrie

+0

OK。解決していただきありがとうございます。 :) –

関連する問題