如何强制`geom_line()`不使用最短距离来连接点?

问题描述:

ggplot(mtcars, aes(wt, mpg)) + geom_line() + geom_point() 

enter image description here如何强制`geom_line()`不使用最短距离来连接点?

geom_line()点与单个直线连接,即在两个点之间的最短路径。我希望线条先沿水平(或垂直)方向直线前进,然后向上或向下(或向右)连接后面的点。

这听起来可能是该选项尚未集成在ggplot2中。一种方法是创建一组不会显示在geom_point()上的点,但是这些点将位于与后面的点相同的x位置(或与前面的点相同的x位置)和在与之前的点相同的y位置(或与随后的点相同的y位置)。听起来像一个复杂的解决方案!我真的无法做到这一点。有更好的解决方案吗?无论如何,你能帮助制作一个方便的功能来完成这两个技巧(1.first vertical和2.first horiozontal)吗?

+4

你的意思'geom_step'? http://docs.ggplot2.org/current/geom_step.html – Henrik 2015-02-07 00:26:39

+1

天啊!对,就是这样!哦,那很容易。你能否从你的评论中做出回答?谢谢Henrik – 2015-02-07 00:27:44

+0

请注意,您可以找到不同'ggplot'' geom's [** here **]的'缩略图'(http://docs.ggplot2.org/current/)(这是来自所有'ggplot2'帮助页面的示例代码) – Henrik 2015-02-07 00:41:35

这听起来像你正在寻找geom_step: “通过楼梯连接的意见”

ggplot(mtcars, aes(wt, mpg)) + 
    geom_step() + 
    geom_point() 

enter image description here

+1

非常感谢Henrik! – 2015-02-07 00:30:32

+1

应该叫做'geom_etch_a_sketch' – 2015-02-07 01:39:33