Plotly R

时间:2018-04-09 11:00:39

标签: r plotly

我的轴上有一个带数值的散点图。我想添加两条可拖动的线条,一条水平线条和一条垂直线条。另外,我想改变由两条线形成的右上象限中的点的颜色。我在R中找不到任何办法。

我的问题类似于Horizontal/Vertical Line in plotly

我要添加的两件事是

  1.   

    能够拖动垂直和水平线

  2. 返回两条线与x和y轴相交的值,以便我可以将这些值用作另一个UI的输入。

  3. 我的代码示例

    data <- data.frame(y = sample(0:50, 100, replace = TRUE),
                      x = round(runif(100),2)
                      )
    plot_ly(data, x = ~x, y = ~y)
    

1 个答案:

答案 0 :(得分:1)

(1)您可以添加可拖动的行,如下所示:

plot_ly(data, x = ~x, y = ~y, type = 'scatter') %>%
    layout(shapes = list(
                    #vertical line
                    list(type = "line", x0 = 0.4, x1 = 0.4, 
                            y0 = 0, y1 = 1, yref = "paper"),
                    #horizontal line
                    list(type = "line", x0 = 0, x1 = 1, 
                            y0 = 30, y1 = 30, xref = "paper"))) %>%
    # allow to edit plot by dragging lines
    config(edits = list(shapePosition = TRUE))

类似于https://stackoverflow.com/a/54777145/5840900

(2)在交互式环境中,可以使用以下命令提取最后拖动的线的值:

        # Only within reactive shiny context
        newData <- plotly::event_data("plotly_relayout")

希望这还是有帮助的!