3

stat_sumによってプロットされた各ポイントに、そのポイントが表す観測値のパーセンテージ(つまり比率)をラベル付けできるかどうかを尋ねたいと思います。理想的には、ラベルを10進数ではなくパーセント形式にする必要があります。

お時間をいただき、ありがとうございました。

編集:最小限の再現可能な例

library("ggplot2")
library("scales")

ggplot(diamonds, aes(x = cut, y = clarity)) +
  stat_sum(aes(group = 1)) +
  scale_size_continuous(labels=percent)

結果のプロットの画像

したがって、私の質問は、(可能であれば)これらの要約ポイントのそれぞれに「prop」パーセンテージ値でラベルを付ける方法です。

4

1 に答える 1

10

いくつかのオプションがあります。ポイントがパーセンテージカウントでラベル付けされていることを考えると、凡例は必要ないと思います。

1つのオプションはstat_sum()、ラベルの美学と「テキスト」ジオメトリを含む別の関数を追加することです。例えば:

library("ggplot2")

ggplot(diamonds, aes(x = cut, y = clarity, group = 1)) +
  stat_sum(geom = "point", show.legend = FALSE) +
  stat_sum(aes(label = paste(round(..prop.. * 100, 2), "%", sep = "")), 
              size = 3, hjust = -0.4, geom = "text", show.legend = FALSE)

または、ポイントの必要がない場合があります。ラベルはすべての作業を行うことができます-場所とサイズを表示します:

ggplot(diamonds, aes(x = cut, y = clarity, group = 1)) +
   stat_sum(aes(label = paste(round(..prop.. * 100, 2), "%", sep = "")), 
              geom = "text", show.legend = FALSE) +
  scale_size(range=c(2, 8))

ggplotの外部でサマリーテーブルを作成する方が簡単な場合があります。

library(plyr)
df = transform(ddply(diamonds, .(cut, clarity), "nrow"),
        percent = round(nrow/sum(nrow)*100, 2))

ggplot(df, aes(x = cut, y = clarity)) +
  geom_text(aes(size = percent, label = paste(percent, "%", sep = "")), 
                     show.legend = FALSE) +
  scale_size(range = c(2, 8))

ここに画像の説明を入力してください

于 2012-11-18T00:54:13.257 に答える