2015-02-07 27 views
1
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

回答

5

這聽起來像你正在尋找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