从R中的两个数据帧创建的线图的Plotly子图的单个图例

从R中的两个数据帧创建的线图的Plotly子图的单个图例,r,plotly,r-plotly,R,Plotly,R Plotly,我试图从两个数据帧绘制折线图,其中两个数据帧的第一列将在一个帧中绘制,以此类推。最后,所有的地块都要放在一个子地块下。但我得到了多个相同符号的传说。数据帧是- d1 <- data.frame(x = 1:5, y = c(2, 3, 4, 1, 5), z = c(2, 1, 4, 6, 8)) d2 <- data.frame(x = 1:5, y = c(1, 5, 8, 9

我试图从两个数据帧绘制折线图,其中两个数据帧的第一列将在一个帧中绘制,以此类推。最后,所有的地块都要放在一个子地块下。但我得到了多个相同符号的传说。数据帧是-

d1 <- data.frame(x = 1:5,
                 y = c(2, 3, 4, 1, 5),
                 z = c(2, 1, 4, 6, 8))

d2 <- data.frame(x = 1:5,
                 y = c(1, 5, 8, 9, 11),
                 z = c(3, 5, 8, 13, 11))

d1这可以通过首先使数据具有正确的形状来实现,这也简化了绘图。只需通过
dplyr::bindrows
对dfs进行行绑定,您就可以使用设置
legendgroup
所需的变量。此外,颜色并不反映变量y和z,而是反映数据集。试试这个:

库(dplyr)
图书馆(绘本)
d1%
布局(图例=列表(标题=列表(文本='Dataset'))
由(v0.3.0)于2020年4月10日创建


这可以通过首先使数据具有正确的形状来实现,这也简化了绘图。只需通过
dplyr::bindrows
对dfs进行行绑定,您就可以使用设置
legendgroup
所需的变量。此外,颜色并不反映变量y和z,而是反映数据集。试试这个:

库(dplyr)
图书馆(绘本)
d1%
布局(图例=列表(标题=列表(文本='Dataset'))
由(v0.3.0)于2020年4月10日创建


这是否回答了您的问题?不,因为我的数据框没有一列可以放在legendgroup下。这能回答你的问题吗?不,因为我的数据框没有一列可以放在legendgroup下。@TanvirKhan,我很乐意。如果你想帮我一个忙,就把问题记下来。除了给我一些信任之外,它还向其他有类似问题的人展示了解决方案的有效性,并将问题从等待答案的问题队列中移除。@TanvirKhan,我很高兴。如果你想帮我一个忙,就把问题记下来。除了给我一些信任外,它还向其他有类似问题的人展示了解决方案的有效性,并将问题从等待答案的问题队列中移除。
py <-
  plot_ly(
    x = d1$x,
    y = d1$y,
    type = "scatter",
    mode = "lines",
    name = names(d1)[2],
    line = list(color = "#56B4E9")
  ) %>% add_trace(y = d2$y,
                  name = names(d1)[3],
                  line = list(color = "#D55E00"))

pz <-
  plot_ly(
    x = d1$x,
    y = d1$z,
    type = "scatter",
    mode = "lines",
    name = names(d1)[2],
    line = list(color = "#56B4E9")
  ) %>% add_trace(y = d2$z,
                  name = names(d1)[3],
                  line = list(color = "#D55E00"))

subplot(py, pz)