[英]Dropdown menu for changing the color attribute of data in scatter plot (Plotly R)
我正在嘗試創建一個具有可選顏色屬性的 plotly 圖,以便將選定的分類數據列作為顏色變量傳遞,它會更改標記的顏色以及我的散點圖 plot 的圖例。
這是示例:
df <- data.frame(x = runif(200), y = runif(200),
z = sample(c("a", "b", "c"), 200, replace=TRUE),
w = sample(c("d", "e", "f",'g'), 200, replace=TRUE))
p <- plot_ly(df, x = ~x)%>%
add_markers(y = ~y, color = ~z,visible=T)%>%
layout(
title = "Drop down menus - color",
xaxis = list(domain = c(0.1, 1)),
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list("color", list(~z)),
label = "group by z"),
list(method = "restyle",
args = list("color", list(~w)),
label = "group by w")))
))
但是,在兩個選項之間切換,plot 不會改變。 顯然,我們可以使用下拉事件更改任何數據屬性,除了顏色。 任何幫助,將不勝感激。
不幸的是,我不相信僅使用plotly
是不可能的:
根據github 問題:
color
/symbol
/linetype
/size
/等映射(從數據值到顏色代碼)發生在 R 方面,所以一旦 plot ZA8CFDE6331BD59EB2AC96F8911IC4B666Z 被傳遞給瀏覽器,它就會丟失有關這些映射的信息恐怕這樣的事情是不可能的......除非你自己做映射
這似乎是shiny
的一個很好的用例。 有一個堆棧溢出問題,向您展示了在 plotly 之外創建菜單並使用選擇重新呈現 plot 的這些步驟。
此外,您可以使用 plotly.js 和 HTML 更改 plot 的顏色。 您必須將 select 元素添加到 HTML 頁面,並添加事件偵聽器以在更新時調用Plotly.newPlot()
。 我相信 shiny 是一個更簡單的解決方案,因為它更像是一種以 R 為中心的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.