这是来自ggplot wiki的ggplot:
baseplot <- ggplot(data.frame(x=1:10, y=10:1)) +
geom_point(aes(x = x, y = y))
baseplot
Run Code Online (Sandbox Code Playgroud)
是否可以单独控制这些轴,例如仅使x轴变黑?它似乎没有,axis.line.x
并且axis.line.y
是选项之一.
维基表明,例如,可以控制轴的颜色
baseplot + opts(axis.line = theme_segment(colour = 'black', size = 2))
Run Code Online (Sandbox Code Playgroud)
使用geom_segment
作品,但有限制,线必须与图号匹配.
有没有办法获得,例如轴最大值和最小值以及baseplot
物体的刻度?这将减少潜在的错误.更新这个问题的答案,"不,还没有",之前已经介绍过.
baseplot + geom_segment(aes(x = c(0,0), y = c(0,0),
yend = c(0, max(y)), xend = c(max(x), 0),
size = c(0.5, 0.1))) +
geom_segment(aes(x = 0, y = y,
xend = -1,
yend = y,
size = 0.1))
Run Code Online (Sandbox Code Playgroud)koh*_*ske 10
不支持单独控制轴线.您可以在绘图后删除或编辑该行:
> baseplot + opts(axis.line = theme_segment(colour = 'black', size = 2))
> grid.remove(gPath("axis_v", "axis.line.segments"), grep=TRUE)
> baseplot + opts(axis.line = theme_segment(colour = 'black', size = 2))
> grid.edit(gPath("axis_v", "axis.line.segments"), grep=TRUE, gp=gpar(col="red"))
> grid.edit(gPath("axis_h", "axis.line.segments"), grep=TRUE, gp=gpar(col="blue"))
Run Code Online (Sandbox Code Playgroud)
更新
在0.9.1-中,这可能会改变如下:
grid.edit(gPath("axis-l", "axis.line.segments"), grep=TRUE, gp=gpar(col="red"))
grid.edit(gPath("axis-b", "axis.line.segments"), grep=TRUE, gp=gpar(col="blue"))
Run Code Online (Sandbox Code Playgroud)
看来你也可以通过这样调整主题来轻松实现它:
mytheme <- theme_classic()
mytheme$axis.line.x <- mytheme$axis.line.y <- mytheme$axis.line
mytheme$axis.line.x$colour <- 'red'
ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point() + mytheme
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4039 次 |
最近记录: |