r - 用于更改散点图中数据颜色属性的下拉菜单(Plotly R)
问题描述
我正在尝试创建一个带有可选颜色属性的绘图图,以便将选定的分类数据列作为颜色变量传递,它会改变标记的颜色以及我的散点图的图例。
这是示例:
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")))
))
但是,在两个选项之间切换,情节并没有改变。显然,我们可以使用下拉事件更改任何数据属性,除了颜色!任何帮助,将不胜感激。
解决方案
不幸的是,我不相信仅使用以下方法是可能的plotly
:
每个github 问题:
color
///symbol
/ etc 映射linetype
(size
从数据值到颜色代码)发生在事物的 R 端,所以一旦绘图对象被传递到浏览器,它就会丢失有关这些映射的信息,所以我担心像这是不可能的……除非你自己做映射
备择方案
这似乎是一个很好的用例shiny
。有一个堆栈溢出问题,向您展示了在 plotly 之外创建菜单以及使用选择重新渲染绘图的这些步骤。
此外,您可以使用 plotly.js 和 HTML 更改绘图的颜色。您必须将选择元素添加到 HTML 页面,并添加事件侦听器以调用Plotly.newPlot()
更新。我相信闪亮是一个更简单的解决方案,因为它更像是一种以 R 为中心的方法。
推荐阅读
- python - Plotly - 更改子图的顺序
- .net-core - 打开 blazor 页面的 iframe 内的按钮不起作用
- python - 为什么转置后添加两个矩阵非常慢?
- .net - AWS .NET SDK 运行 ECS 任务 - 如何选择 VPC?
- r - 在 R 中循环采样以创建许多向量
- javascript - 打字稿中的地图初始化
- go - 在 chromedp.ActionFunc 中赋值的变量不能被 SendKeys 输入
- docker - docker 与 windows 和 linux 容器共享网络
- apache-kafka - 当第二个主题数据迟到时如何合并两个kafka主题数据
- macos - MacOS - “aws:找不到命令。” 尽管文件显示在“/usr/local/bin/”中