簡體   English   中英

用於更改散點圖中數據顏色屬性的下拉菜單 plot (Plotly R)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM