R 在plotly中同时使用组和颜色

R 在plotly中同时使用组和颜色,r,ggplot2,plotly,R,Ggplot2,Plotly,我正在尝试使用plotly在r中绘制多个维度-是否可以在因子变量上同时使用color和group参数来绘制一条改变颜色的线 例如: grp <- c(letters[c(1,1,1,1,2,2,2,2)]) a <- c(1,2,3,4,2,3,4,5) b <- c(1,3,5,6,1,2,4,4) lvl <- c(1,1,2,2,1,1,2,2) df <- data.frame(grp, a, b, lvl) 但是,当我随后调用ggplotly()时,

我正在尝试使用plotly在
r
中绘制多个维度-是否可以在因子变量上同时使用
color
group
参数来绘制一条改变颜色的线

例如:

grp <- c(letters[c(1,1,1,1,2,2,2,2)])
a <- c(1,2,3,4,2,3,4,5)
b <- c(1,3,5,6,1,2,4,4)
lvl <- c(1,1,2,2,1,1,2,2)

df <- data.frame(grp, a, b, lvl)

但是,当我随后调用
ggplotly()
时,该行将按
lvl
进行分组和着色


我正在搜索相同的函数。这似乎是组和颜色是阴谋氪石。 到目前为止,我唯一的解决方案是创建一列颜色代码,并使用它定义标记的颜色:

library(scales)
library(plotly)

grp <- c(letters[c(1,1,1,1,2,2,2,2)])
a <- c(1,2,3,4,2,3,4,5)
b <- c(1,3,5,6,1,2,4,4)
lvl <- c(1,1,2,2,1,1,2,2)
df <- data.frame(grp, a, b, lvl)

Palette <- data.frame(lvl = unique(df$lvl), color = brewer_pal("seq",palette = "Reds",direction = -1)(length(unique(df$lvl))), stringsAsFactors = FALSE)

df <- merge(x = df, y = Palette, by = "lvl")

p <- plot_ly(df, x = a, y = b, group = grp, mode = "markers+lines", marker = list(color = color, size = 8), line = list(color = "black", width = 2))
p
库(比例)
图书馆(绘本)

grp我也在尝试做同样的事情,现在有了一个正式的方法:你需要在
plot\u ly
之前添加一个
groupby
语句(参见)

grp
library(scales)
library(plotly)

grp <- c(letters[c(1,1,1,1,2,2,2,2)])
a <- c(1,2,3,4,2,3,4,5)
b <- c(1,3,5,6,1,2,4,4)
lvl <- c(1,1,2,2,1,1,2,2)
df <- data.frame(grp, a, b, lvl)

Palette <- data.frame(lvl = unique(df$lvl), color = brewer_pal("seq",palette = "Reds",direction = -1)(length(unique(df$lvl))), stringsAsFactors = FALSE)

df <- merge(x = df, y = Palette, by = "lvl")

p <- plot_ly(df, x = a, y = b, group = grp, mode = "markers+lines", marker = list(color = color, size = 8), line = list(color = "black", width = 2))
p
grp <- c(letters[c(1,1,1,1,2,2,2,2)])
a <- c(1,2,3,4,2,3,4,5)
b <- c(1,3,5,6,1,2,4,4)
lvl <- c(1,1,2,2,1,1,2,2)

df <- data.frame(grp, a, b, lvl)
df %>% group_by(grp) %>% plot_ly(x = a, y = b, mode = "markers+lines", color = lvl)