2017-08-07 69 views
1

有没有办法使用coord_cartesian()以基于ggplot调用中的数据的动态方式修改绘图坐标?ggplot:动态修改coord_cartesian()值

例如:

ggplot(cars, aes(x = speed, y = dist)) + 
geom_point() + 
coord_cartesian(xlim = c(min(.$speed), max(.$speed) + 10)) 

这不起作用,也不使用.data$speed

回答

2

您可以使用magrittrdplyr管道运营商(%>%)将数据传递到ggplot通话。

cars %>% 
    {ggplot(., aes(speed, dist)) + 
    geom_point() + 
    coord_cartesian(xlim = c(min(.$speed), max(.$speed) + 10)) 
    } 

注意,现在你需要明确标识在使用.代词ggplot通话开始的数据参数。

2

这有点不好意思,但你可以添加一个空白的几何,并在美学中增加10。

ggplot(cars, aes(x = speed, y = dist)) + 
    geom_point() + 
    geom_blank(aes(y = dist + 10))