用于更改散点图(Plotly R)中数据的颜色属性的下拉菜单

用于更改散点图(Plotly R)中数据的颜色属性的下拉菜单,r,drop-down-menu,plotly,R,Drop Down Menu,Plotly,我正在尝试创建一个具有可选颜色属性的plotly graph,以便将选定的分类数据列作为颜色变量传递,从而更改标记的颜色以及散点图的图例 以下是一个例子: df <- data.frame(x = runif(200), y = runif(200), z = sample(c("a", "b", "c"), 200, replace=TRUE), w = sa

我正在尝试创建一个具有可选颜色属性的plotly graph,以便将选定的分类数据列作为颜色变量传递,从而更改标记的颜色以及散点图的图例

以下是一个例子:

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")))
    ))
df%
布局(
title=“下拉菜单-颜色”,
xaxis=list(domain=c(0.1,1)),
yaxis=列表(title=“y”),
updatemenus=列表(
名单(
y=0.7,
按钮=列表(
列表(method=“restyle”,
args=list(“颜色”,list(~z)),
label=“按z分组”),
列表(method=“restyle”,
args=list(“颜色”,list(~w)),
label=“按w分组”))
))


但是,在两个选项之间切换时,绘图不会更改。显然,除了颜色,我们可以使用下拉事件更改任何数据属性!任何帮助都将不胜感激。

不幸的是,我不认为仅使用
绘图就可以做到这一点:

根据a:

颜色
/
符号
/
线型
/
大小
/etc映射(从数据值到颜色代码)发生在事物的R端,因此一旦plot对象传递到浏览器,它将丢失有关这些映射的信息,因此我担心类似的事情将不可能发生……除非您自己进行映射

选择 这似乎是
shinny
的一个很好的用例。有一个对话框向您显示了在plotly之外创建菜单以及使用所选内容重新渲染绘图的步骤


此外,可以使用plotly.js和HTML更改打印的颜色。您必须将select元素添加到HTML页面,并添加事件侦听器以在更新时调用
Plotly.newPlot()
。我认为Shining是一个更简单的解决方案,因为它更像是一种以R为中心的方法。

不幸的是,我不认为单独使用
plotly就可以做到这一点:

根据a:

颜色
/
符号
/
线型
/
大小
/etc映射(从数据值到颜色代码)发生在事物的R端,因此一旦plot对象传递到浏览器,它将丢失有关这些映射的信息,因此我担心类似的事情将不可能发生……除非您自己进行映射

选择 这似乎是
shinny
的一个很好的用例。有一个对话框向您显示了在plotly之外创建菜单以及使用所选内容重新渲染绘图的步骤

此外,可以使用plotly.js和HTML更改打印的颜色。您必须将select元素添加到HTML页面,并添加事件侦听器以在更新时调用
Plotly.newPlot()
。我相信Shining是一个更简单的解决方案,因为它更像是一个以R为中心的方法