この質問への回答を使用して、パーセンテージ ラベルを条件付きでプロットするにはどうすればよいですか。たとえば、パーセンテージが 50% 未満の場合にのみプロットに表示するようにします。または、1 つのカテゴリのみに関連付けられたパーセンテージを表示したい場合はどうすればよいでしょうか?
質問する
1753 次
1 に答える
1
リンクしたものとは少し異なるソリューションから始めました。その例の構文は少し曖昧であることがわかったためです(ただし、短いですが)。次に、ラベルとそのy位置の列を作成し、を使用してラベルをプロットしgeom_text()
ます。
require(ggplot2)
require(plyr)
#set up the data frame, as in the previous example
cls.grp <- gl(n=4,k=20,labels=c("group a","group b","group c", "group d"))
ser <- sample(x=c("neg","pos"),size=80,replace=TRUE, prob=c(30,70))
syrclia <- data.frame(cls.grp,ser)
#create a data frame with the 'metadata' you will plot
ct <- ddply(syrclia, "cls.grp", count) #count the occurrences of each cls.group type
ct <- ddply(ct, "cls.grp", transform, frac=freq/sum(freq)*100) #calculate frequencies as percentages
ct$frac_to_print <- ""
cutoff <- 30 #define the cutoff, below which you will not plot percentages
ct$frac_to_print[which(ct$frac > cutoff)] <- paste(ct$frac[which(ct$frac>cutoff)], "%")
ct <- ddply(ct, "cls.grp", transform, pos = cumsum(freq)) #calculate the position for each label
ggplot(ct, aes(x=cls.grp, y=freq)) +
geom_bar(aes(fill=ser)) +
geom_text(aes(x=cls.grp, y=pos, label=frac_to_print))
于 2012-10-02T18:34:37.350 に答える