2

geom_text() 関数を使用して、ggplot グラフにテキスト ラベルのリストを表示したいと考えています。

それらのラベルの位置はリストに保存されます。

以下のコードを使用すると、2 番目のラベルのみが表示されます。

x <- seq(0, 10, by = 0.1)
y <- sin(x)
df <- data.frame(x, y)
g <- ggplot(data = df, aes(x, y)) + geom_line()

pos.x <- list(5, 6)
pos.y <- list(0, 0.5)

for (i in 1:2) {
  g <- g + geom_text(aes(x = pos.x[[i]], y = pos.y[[i]], label = paste("Test", i)))
}

print(g)

このコードの何が問題なのですか?

4

2 に答える 2

4

geom_textfor ループ内で をどのように使用できるかは正確にはわかりませんが、事前にテキスト ラベルを定義してannotate代わりに使用することで、目的の結果を得ることができます。以下のコードを参照してください。

library(ggplot2)
x <- seq(0, 10, by = 0.1)
y <- sin(x)
df <- data.frame(x, y)

pos.x <- c(5, 6)
pos.y <- c(0, 0.5)
titles <- paste("Test",1:2)
ggplot(data = df, aes(x, y)) + geom_line() + 
annotate("text", x = pos.x, y = pos.y, label = titles)
于 2016-03-31T10:20:02.247 に答える