R 为ggplot2定义一个新的geom_xxx
我经常需要一个内有黑点的R 为ggplot2定义一个新的geom_xxx,r,ggplot2,R,Ggplot2,我经常需要一个内有黑点的geom_路径。 因此,我希望有一个新的geom_dotpath,可以用来代替调用 geom_路径和geom_点 LineColours <- brewer.pal(n=8,name="Paired") ggplot() + geom_path(data=mtcars, aes(x=mpg, y=qsec), size=1.5, colour=LineColours[3]) + geom_point(data=mtcars, aes(x=mpg, y=qsec),
geom_路径
。
因此,我希望有一个新的geom_dotpath
,可以用来代替调用
geom_路径
和geom_点
LineColours <- brewer.pal(n=8,name="Paired")
ggplot() +
geom_path(data=mtcars, aes(x=mpg, y=qsec), size=1.5, colour=LineColours[3]) +
geom_point(data=mtcars, aes(x=mpg, y=qsec), size=1.5, colour=LineColours[4])
linecolors我不知道如何选择颜色,但是定义一个全新的几何图形应该不是很有必要。您应该能够编写一个返回相关层的函数:
geom_dotpath <- function(data,x,y,pathCol,ptCol,...){
p1 <- geom_path(data = data,aes_string(x = x,y = y),color = pathCol,...)
p2 <- geom_point(data = data,aes_string(x = x,y = y),color = ptCol,...)
list(p1,p2)
}
ggplot() + geom_dotpath(data = mtcars,
x = "mpg",
y = "qsec",
pathCol = LineColours[3],
ptCol = LineColours[4],
size = 1.5)
geom_dotpath我不知道颜色选择,但是定义一个全新的geom应该不是必要的。您应该能够编写一个返回相关层的函数:
geom_dotpath <- function(data,x,y,pathCol,ptCol,...){
p1 <- geom_path(data = data,aes_string(x = x,y = y),color = pathCol,...)
p2 <- geom_point(data = data,aes_string(x = x,y = y),color = ptCol,...)
list(p1,p2)
}
ggplot() + geom_dotpath(data = mtcars,
x = "mpg",
y = "qsec",
pathCol = LineColours[3],
ptCol = LineColours[4],
size = 1.5)
geom\u dotpath您可能会发现,一旦习惯将应用于整个图形的所有属性放入原始的ggplot()
调用中,将新的geom添加到绘图中所需的工作量就会减少-在您的示例中,data=mtcars,aes(x=mpg,y=qsec)
可以移动到ggplot()
调用中,为每个单独的几何图形保留更少的键入。一旦习惯将应用于整个图形的所有属性放入原始的ggplot()
调用中,您可能会发现将新几何图形添加到绘图中的工作量会更少。在您的示例中,data=mtcars,aes(x=mpg,y=qsec)
可以移动到ggplot()中
call,为每个Geom留下更少的输入。