5

凡例を使用して、から(0,0)に 線を引きたいプロットがあります。(15,15)どうすればそれを達成できますか?プロット:

frame <- read.table('pastie_from_web', sep=",", header=TRUE)
colnames(frame) <- c("pos", "word.length")
plot <- ggplot(frame, aes(x=pos, y=word.length)) + scale_x_continuous(limits=c(1,15)) + scale_y_continuous(limits=c(1,15))+ geom_density2d(aes(color=..level..)) + scale_color_gradient(low="black", high="red") + opts(legend.position="none")
png(paste("graphs/", fname, ".png", sep=""), width=600, height=600)
print(plot)

データ:http ://sprunge.us/gKiLまたは

structure(list(position = c(2, 2, 2, 2, 7, 8, 4, 5, 4, 9, 5, 
2, 7, 9, 9, 6, 5, 6, 9, 2, 6, 5, 5, 7, 7, 5, 6, 5, 5, 3, 2, 4, 
5, 2, 3, 2, 7, 5, 2, 5, 2, 6, 8, 7, 2, 8, 5, 4, 2, 5, 2, 2, 2, 
6, 8, 2, 2, 9, 5, 2, 4, 7, 3, 4, 9, 5, 5, 5, 5, 4, 7, 2, 7, 2, 
4, 4, 3, 2, 5, 6, 5, 5, 5, 5, 4, 4, 8, 7, 5, 7, 4, 3, 4, 5, 2, 
6, 6, 4, 4, 2, 2, 3, 2, 2, 6, 2), word.length = c(5L, 5L, 6L, 
4L, 9L, 11L, 5L, 8L, 8L, 10L, 8L, 9L, 8L, 10L, 10L, 7L, 9L, 10L, 
11L, 10L, 10L, 8L, 13L, 11L, 11L, 13L, 7L, 9L, 6L, 4L, 9L, 8L, 
9L, 6L, 4L, 5L, 11L, 13L, 13L, 13L, 10L, 9L, 11L, 8L, 4L, 10L, 
8L, 16L, 3L, 5L, 4L, 12L, 12L, 15L, 9L, 12L, 12L, 11L, 11L, 8L, 
16L, 9L, 8L, 7L, 10L, 11L, 6L, 13L, 5L, 8L, 8L, 5L, 8L, 5L, 6L, 
6L, 7L, 10L, 13L, 7L, 6L, 13L, 9L, 6L, 7L, 8L, 11L, 8L, 8L, 8L, 
8L, 8L, 7L, 6L, 5L, 9L, 9L, 5L, 5L, 6L, 7L, 8L, 8L, 10L, 8L, 
10L)), .Names = c("position", "word.length"), class = "data.frame", row.names = c(NA, 
-106L))
4

1 に答える 1

6

説明のためのデータセットの例を次に示します。

set.seed(42)
dat <- data.frame(x = runif(20, min = 0, max = 20),
                  y = runif(20, min = 0, max = 20))

p <- ggplot(dat, aes(x = x, y = y)) 
p + geom_point() + 
    geom_line(data = data.frame(x = c(0,15), y = c(0,15)),
              aes = aes(x = x, y = y), colour = "red")

geomsに異なる引数を指定する方法に注目してください。これにより、元の呼び出しdataで定義された同じプロット領域に異なるデータオブジェクトをプロットできます。注:(呼び出し中の)2番目のデータフレームが元のプロットと同じx軸とy軸のマッピングを持っている場合、私が最初にコードを持っていたので、新しいものは必要ありません(回答の改訂履歴を参照)。これは明確ではなかった可能性があり、@ Justinからのコメントにより、データを美学にマッピングするための新しい呼び出しを含めるように変更するように促されました。私の例では必要ありませんが、実際の使用では必要になる可能性があります。ggplot()geom_line()aes()geom_line()aes()

上記は与える:

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

別の任意の線が必要な場合はgeom_abline()、勾配と切片を与える線を描くことを検討してください。は、開始と終了のx座標とy座標を指定するgeom_segment()上記の代替手段です。geom_line()どちらを使用するかを決定するには、geomのそれぞれのヘルプページを参照してください。

于 2012-06-05T17:48:26.533 に答える