gpt4 book ai didi

r - plotly:通过下拉选择更新数据

转载 作者:行者123 更新时间:2023-12-01 16:24:55 24 4
gpt4 key购买 nike

我不确定这是否可行,但这就是我想做的。我想通过从下拉菜单中进行选择来更新 plotly 图中的数据。

作为一个简单的例子,假设我有一个数据框

df <- data.frame(x = runif(200), y = runif(200), z = runif(200))

我在散点图中使用了df$xdf$y。我想使用下拉菜单实现两种数据操作场景:

  1. df$y 替换为 df$z
  2. 仅绘制 df$xdf$y 的前 n 个值

我查看了以下两个示例,我可以轻松重现它们: https://plot.ly/r/dropdowns/

但是,我不知道如何传递有关根据下拉选择绘制的数据的信息。对于场景 2 例如我已经用 args = list("data", df[1:n,]) 尝试过,但没有成功。

对于场景 1,(唯一的?)方法(根据示例)似乎分别是隐藏/显示痕迹。这也是场景 2 的唯一方法吗?

还有其他想法吗?

更新 1: 添加可重现的示例

这是一个实现我在场景 1 中想要的效果的示例。

require(plotly)
df <- data.frame(x = runif(200), y = runif(200), z = runif(200))
Sys.setenv("plotly_username"="xxx") #actual credentials replaced
Sys.setenv("plotly_api_key"="xxx") #actual credentials replaced

p <- plot_ly(df, x = df$x, y = df$y, mode = "markers", name = "A", visible = T) %>%
add_trace(mode = "markers", y = df$z, name = "B", visible = T) %>%
layout(
title = "Drop down menus - Styling",
xaxis = list(domain = c(0.1, 1)),
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list("visible", list(TRUE, TRUE)),
label = "Show All"),

list(method = "restyle",
args = list("visible", list(TRUE, FALSE)),
label = "Show A"),

list(method = "restyle",
args = list("visible", list(FALSE, TRUE)),
label = "Show B")))
))

plotly_POST(p)

此处的结果:https://plot.ly/~spietrzyk/96/drop-down-menus-styling/这是基于 https://plot.ly/r/dropdowns/ 中的示例

但是,我想知道是否可以传递要绘制的数据,而不是触发对各个迹线的 visible 属性的更改。

我尝试过的一件事如下:

p <- plot_ly(df, x = df$x, y = df$y, mode = "markers", name = "A", visible = T) %>%
layout(
title = "Drop down menus - Styling",
xaxis = list(domain = c(0.1, 1)),
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list("y", df$y),
label = "Show A"),
list(method = "restyle",
args = list("y", df$z),
label = "Show B")))
))

此处的结果:https://plot.ly/~spietrzyk/98/drop-down-menus-styling/此方法不起作用,因为来自 df$z 的数据未发布到网格 ( https://plot.ly/~spietrzyk/99/ )。

所以我想知道除了绘制所有轨迹以及通过下拉选择切换 visible 属性之外,是否还可以根据下拉选择来操作要绘制的数据。

最佳答案

这就是你所追求的吗?

require(plotly)
df <- data.frame(x = runif(200), y = runif(200), z = runif(200))
p <- plot_ly(df, x = ~x, y = ~y, mode = "markers", name = "A", visible = T) %>%
layout(
title = "Drop down menus - Styling",
xaxis = list(domain = c(0.1, 1)),
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list("y", list(df$y)), # put it in a list
label = "Show A"),
list(method = "restyle",
args = list("y", list(df$z)), # put it in a list
label = "Show B")))
))
p

关于r - plotly:通过下拉选择更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024029/

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