Plotly R中的可移动线

Posted

技术标签:

【中文标题】Plotly R中的可移动线【英文标题】:Movable lines in Plotly R 【发布时间】:2018-09-18 18:14:11 【问题描述】:

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

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

我要补充的两件事是

    能够拖动垂直和水平线

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

我的代码示例

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

【问题讨论】:

这个plot.ly/r/shiny-coupled-events 可以提供帮助 嘿企鹅,你找到解决办法了吗?我也在考虑如何为我闪亮的应用程序执行此操作。很高兴看到解决方案! 【参考方案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://***.com/a/54777145/5840900

(2) 在交互环境中,可以提取最后一条拖线的值:

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

希望这仍然有帮助!

【讨论】:

以上是关于Plotly R中的可移动线的主要内容,如果未能解决你的问题,请参考以下文章

Plotly 可移动/可拖动图例,python

如何使用场景向 scatter3D Plotly 绘图添加注释?

在 Plotly 中反转和移动轴 - iplot

R Plotly:右侧 Y 轴的水平条形图

在 Plotly Python 中移动 x 轴和 y 轴刻度

如何将多条移动平均线动态添加到 Plotly Candlestick