0
多くの行を描画するgeom
をggplot2
に作成しようとしています。しかし、私の問題は、描かれた線が正確ではないということです。ここに私の問題の簡単な説明があります。これは、線を引く必要がありますgeom_line1
と呼ばれる新しいGEOMあるggplot2で新しいgeomを作成するときのデータのスケール方法は?
GeomLine1 <- ggproto("GeomLine1", Geom,
required_aes = c('x','y'),
default_aes = aes(colour = "black"),
draw_key = draw_key_abline,
draw_panel = function(data, panel_scales, coord) {
grid::linesGrob(x=data$x,y=data$y,default.units = 'native')}
)
geom_line1 <- function(mapping = NULL, data = NULL, stat = "identity",
position = "identity", na.rm = FALSE, show.legend = NA,
inherit.aes = TRUE, ...) {
layer(
geom = GeomLine1, mapping = mapping, data = data, stat = stat,
position = position, show.legend = show.legend, inherit.aes = inherit.aes,
params = list(na.rm = na.rm, ...)
)
}
この例を考えてみましょう。このコードの
dat <- data.frame(x = c(0,10), y = c(0,10))
ggplot(dat,aes(x,y))+geom_line1() + geom_point()
出力が
であるあなたは、ラインがその位置にポイントを越えて延びている見ることができます。私がデフォルト機能geom_line
を使用すれば、それは完璧です。私のコードで何が間違っていますか?また、誰かが新しいgeomsを書くための良いチュートリアルを提案できるなら、それは素晴らしいことでしょう。
ggplot(dat,aes(x,y))+geom_line() + geom_point()
[チュートリアル](http://docs.ggplot2.org/dev/vignettes/extending-ggplot2.html)する必要があります。 – Axeman
@Axeman私は運がないことを読んだ。ありがとう – Koundy
'geom_line1'と' geom_line'のソースを比較しましたか? – Axeman