R 获取不同变量的单独图形线

R 获取不同变量的单独图形线,r,plot,ggplot2,plotly,R,Plot,Ggplot2,Plotly,我有一个具有以下结构的变量data: week: int 1 1 2 2 3 3 4 4 5 5 ... earn: int 2 3 2 7 8 9 2 6 4 2 ... name: chr "C", "A", "C", "A" ... 每个人都有一周的时间来记录他们的收入。从上面我们可以看到C在第一周赚了2分,而A在第一周赚了3分。C在第二周获得2分,而A在第二周也获得7分 我想把它画在一个折线图上。下面是我尝试过的 p <- plot.ly(data, x = data$week

我有一个具有以下结构的变量
data

week: int 1 1 2 2 3 3 4 4 5 5 ...
earn: int 2 3 2 7 8 9 2 6 4 2 ...
name: chr "C", "A", "C", "A" ... 
每个人都有一周的时间来记录他们的收入。从上面我们可以看到C在第一周赚了2分,而A在第一周赚了3分。C在第二周获得2分,而A在第二周也获得7分

我想把它画在一个折线图上。下面是我尝试过的

p <- plot.ly(data, x = data$week, name = "Week", type = "scatter", mode = "lines") %>%
    add_trace(y = data$earn, name = "earn", mode = "lines+markers) %>%
    add_trace(y = data$earn, name = "earn", mode = "markers")

p
p%
添加跟踪(y=数据$earn,name=“earn”,mode=“行+标记)%>%
添加跟踪(y=数据$earn,name=“earn”,mode=“markers”)
P

然而,这给出了一个带有一行的图表,其中第一周的标记有(2,3),因为这两个都是本周的收入。然而,我想要两行,这样可以清楚地看到两个名字的收入差异。

定义颜色会给你你想要的

p <- plot_ly(data, x = ~week, y = ~ earn) %>%
    add_lines(color = ~name) %>% 
    add_markers(color = ~name, showlegend = FALSE)
p
p%
添加_行(颜色=~name)%>%
添加标记(颜色=~name,showlegend=FALSE)
P
或者,您也可以使用:

p <- plot_ly(data=data, x = ~week, y = ~ earn) %>%
    add_traces(color = ~name, mode = "lines+markers")
p
p%
添加痕迹(颜色=~name,mode=“线条+标记”)
P

这是可行的。但是,在图例中,我有两行显示两个名称的颜色,还有两个标记显示两个名称的颜色。是否可以为每个名称只显示一次颜色,而不是两次?@petermark,请参见编辑。如果在第一个示例中添加showlegend=FALSE,将显示一个图例