gpt4 book ai didi

r - 在 Plotly/Shiny 中使用代理接口(interface)动态更改数据

转载 作者:行者123 更新时间:2023-12-04 11:12:38 27 4
gpt4 key购买 nike

我想使用 Proxy Interface 更新绘图中的数据(显示在 Shiny 应用程序的 plotlyOutput 中) .这是一个最小的 App.R 代码:

library(shiny)
library(plotly)

ui <- fluidPage(
actionButton("update", "Test"),
plotlyOutput("graphe")
)

server <- function(input, output, session) {
output$graphe <- renderPlotly({
p <- plot_ly(type="scatter",mode="markers")
p <- layout(p,title="test")
p <- add_trace(p, x=0,y=0,name="ABC_test",mode="lines+markers")
})

observeEvent(input$update, {
proxy <- plotlyProxy("graphe", session) %>%
plotlyProxyInvoke("restyle", list(x=0,y=1),0)
})
}

shinyApp(ui, server)

当我运行它时,该图会在 (0,0) 处显示一个点(根据需要),但是当我单击“测试”按钮时,该点不会移动到 (0,1)。我怎样才能做到这一点?

谢谢你的任何回答。

最佳答案

够奇怪的addTraces不能只用一个点,而是用两个点。为了使它起作用,您可以两次添加相同的点。所以你可以试试这个:

ui <- fluidPage(
actionButton("update", "Test"),
plotlyOutput("graphe")
)

server <- function(input, output, session) {
output$graphe <- renderPlotly({
p <- plot_ly(type="scatter",mode="markers")
p <- layout(p,title="test")
p <- add_trace(p, x=0,y=0,name="ABC_test",mode="lines+markers")
})

observeEvent(input$update, {
plotlyProxy("graphe", session) %>%
plotlyProxyInvoke("deleteTraces", list(as.integer(1))) %>%
plotlyProxyInvoke("addTraces", list(x=c(0, 0),y=c(1, 1),
type = 'scatter',
mode = 'markers'))
})
}

shinyApp(ui, server)

关于r - 在 Plotly/Shiny 中使用代理接口(interface)动态更改数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50620360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com