plotly: Aktualisieren von Daten mit Dropdown-Auswahl
Ich bin mir nicht sicher, ob dies möglich ist, aber hier ist, was ich tun möchte. Ich möchte die Daten in einem @ aktualisierplotly
Plotten durch Auswahl aus einem Dropdown-Menü.
Als einfaches Beispiel nehmen wir an, ich habe einen Datenrahmen
df <- data.frame(x = runif(200), y = runif(200), z = runif(200))
on dem ich @ benutdf$x
unddf$y
in einem Streudiagramm. Zwei Szenarien der Datenmanipulation möchte ich mit einem Dropdown erreichen:
df$y
mitdf$z
Nur das erste @ eintragn
Werte vondf$x
unddf$y
Ich habe mir die folgenden zwei Beispiele angesehen, die ich leicht reproduzieren kann:https: //plot.ly/r/dropdowns
Ich habe jedoch keine Ahnung, wie ich die Informationen zu den zu plottenden Daten basierend auf der Dropdown-Auswahl weitergeben soll. Für Szenario 2, z. Ich habe es mit @ versucargs = list("data", df[1:n,])
was nicht funktioniert hat.
Für Szenario 1 scheint der (einzige?) Weg (gemäß den Beispielen) die Spuren zu verbergen bzw. zu zeigen. Ist das auch der einzige Weg für Szenario 2?
Alle alternativen Ideen?
Update 1: Reproduzierbares Beispiel hinzufügen
So hier ist ein Beispiel, das erreicht, was ich in Szenario 1 möchte.
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)
Ergebnis hier:https: //plot.ly/~spietrzyk/96/drop-down-menus-styling Dies basiert auf dem Beispiel vonhttps: //plot.ly/r/dropdowns
Ich frage mich jedoch, ob man die zu zeichnenden Daten übergeben kann, anstatt Änderungen am @ auszulösevisible
eigenschaft einzelner spuren.
Das eine, was ich versucht habe, war das Folgende:
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")))
))
Ergebnis hier:https: //plot.ly/~spietrzyk/98/drop-down-menus-styling Dieser Ansatz kann nicht funktionieren, da die Daten vondf$z
wird nicht in das Raster geschrieben https: //plot.ly/~spietrzyk/99).
Also habe ich mich gefragt, ob es sowieso möglich ist, die zu plottenden Daten auf der Grundlage der Dropdown-Auswahl zu manipulieren, über das Plotten aller Spuren hinaus und dann das @ -Schaltevisible
Eigenschaft durch Dropdown-Auswahl.