Plotly 中的 Add_Trace 问题

Posted

技术标签:

【中文标题】Plotly 中的 Add_Trace 问题【英文标题】:Add_Trace issue in Plotly 【发布时间】:2021-10-09 02:08:45 【问题描述】:

如何在add_trace 函数中增加绿线 (lcl) 和红线 (lsl) 的长度,使它们延伸到绘图的末尾(而不是中途停止)?

这是我的图表代码:

      output$p <- renderPlotly(
plot1 %>%

                add_trace(y = lcl(),type = "scatter", mode = "lines", line = list(color = 'lightgreen', width = 2, dash = 'solid'), inherit = FALSE, name = paste("LCL =", lcl()[1])) %>%
     
                add_trace(y = lsl(),type = "scatter", mode = "lines", line = list(color = 'red', width = 2, dash = 'solid'), inherit = FALSE, name = paste("LSL =", lsl()[1])) %>%
              %>%
                layout(
                    title = paste(" cell culture", input$select),
                    yaxis = list(  showline = TRUE,
                                   mirror = "ticks",
                                   linecolor = toRGB("grey"),
                                   linewidth = 1.85
                    ),
                    xaxis = list(  showline = TRUE,
                                   mirror = "ticks",
                                   linecolor = toRGB("grey"),
                                   linewidth = 1.85,
                                   tickangle=70))
        )

编辑:为简单起见,我去掉了实际绘图(散点图)的代码,该图很好,不需要任何调整。

【问题讨论】:

看来您在另一个question 中使用了我下面的答案。请务必接受并支持您认为有帮助的答案。 【参考方案1】:

我不会使用add_trace 来创建跨越整个图形的水平线,而是将水平线作为形状添加到布局中:

layout(shapes = list(
  list(
    type = "line",
    x0 = 0,
    x1 = 1,
    xref = "paper",
    y0 = 75,
    y1 = 75,
    line = list(color = 'lightgreen', width = 2)
  ),
  list(
    type = "line",
    x0 = 0,
    x1 = 1,
    xref = "paper",
    y0 = 100,
    y1 = 100,
    line = list(color = 'red', width = 2)
  )
))

使用xref = "paper",因此该线横跨整个图形。

在纸张坐标中的定位不是以绝对像素的方式进行的,而是以相对于坐标系的方式进行的(1,1) 在 (layout.width-layout.margin.r, layout.height-layout.margin.t)...

https://plotly.com/python/figure-structure/#positioning-with-paper-container-coordinates-or-axis-domain-coordinates

根据您的要求更改 y 值。

【讨论】:

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

plotly R中的多行不使用add_trace

R plotly add_trace 到带有颜色组的图表

用Plotly add_trace go.scatter for-loop在图例中只用唯一的轨迹名称填充。

如何在 Plotly 的图中定位图例

通过单击 plotly 中的数据点打开 url?

Plotly Graph 对象:显示悬停信息不起作用