56

注釈テキストをプロットに追加しているときに、滑らかで見栄えの良いテキストが生成されるgeom_text()一方で、見苦しいギザギザのテキストが生成されることに気付きました。annotate()なぜこれが起こるのか、それを修正する方法があるのか​​ 誰かが知っていますか? ここでそのまま使用できることはわかってannotate()いますが、おそらく使用した方がよい場合がありgeom_text()、修正を見つけたいと考えています。また、見栄えの悪いテキストを提供することを意図geom_text()することはできないため、何か間違ったことを行っているか、ある種の微妙な副作用に遭遇しました.

これは、偽のデータと、グラフを生成するためのコード、および結果を示す画像です。

library(ggplot2)
age = structure(list(age = c(41L, 40L, 43L, 44L, 40L, 42L, 44L, 45L, 
        44L, 41L, 43L, 40L, 43L, 43L, 40L, 42L, 43L, 44L, 43L, 41L)), 
        .Names = "age", row.names = c(NA, -20L), class = "data.frame")
ggplot(age, aes(age)) + 
  geom_histogram() +
  scale_x_continuous(breaks=seq(40,45,1)) +
  stat_bin(binwidth=1, color="black", fill="blue") +
  geom_text(aes(41, 5.2, 
            label=paste("Average = ", round(mean(age),1))), size=12) +
  annotate("text", x=41, y=4.5, 
           label=paste("Average = ", round(mean(age$age),1)), size=12)

ここに画像の説明を入力

4

2 に答える 2

82

geom_textagedata.frame から直接何も使用していないにもかかわらず、まだデータ ソースに使用しています。したがって、各行に 1 つずつ、プロットに "Average=42.3" の 20 のコピーを配置しています。見栄えが悪いのは、その複数の上書きです。 geom_text情報が data.frame から得られるプロットにテキストを配置するように設計されています (元のggplot呼び出しで直接または間接的に指定されます)。annotateあなたが持っているような単純な1回限りの追加用に設計されています(geom_textデータソースを処理して を作成します)。

本当に を使用したい場合はgeom_text()、データ ソースをリセットするだけです。

ggplot(age, aes(age)) + 
  scale_x_continuous(breaks=seq(40,45,1)) +
  stat_bin(binwidth=1, color="black", fill="blue") +
  geom_text(aes(41, 5.2, 
            label=paste("Average = ", round(mean(age$age),1))), size=12,
            data = data.frame()) +
  annotate("text", x=41, y=4.5, 
           label=paste("Average = ", round(mean(age$age),1)), size=12)

ここに画像の説明を入力

于 2012-06-08T17:00:40.583 に答える