带有Plotly的{R}动态图例标签

时间:2017-10-12 21:50:33

标签: r plotly

我有以下R代码:

g <- plot_ly(df, x = ~Day) %>%
  add_trace(data=df[which(df$FcNum==1),], y = ~ProjAmount, name = ~paste(FcName), hoverinfo = "text", text = ~paste('Projected Amt: ', round(ProjAmount,2)), mode = 'lines', width = 1, connectgaps = "false") %>% 
  add_trace(data=df[which(df$FcNum==2),], y = ~ProjAmount, name = 'Forecast 2', hoverinfo = "text", text = ~paste('Projected Amt: ', round(ProjAmount,2)), mode = 'lines', width = 1, connectgaps = "false") %>%
        layout(xaxis = x, yaxis = y)

您可能已经注意到,在第一个跟踪中,对于name变量,我输入了~paste(FcName)。这是因为我要做的是将图例上的跟踪/行的名称作为数据框中FcName列中的值。

我的数据框看起来像这样:

 Day       Amount    ProjAmt      FcNum    FcName
 1          10.4       55          1        userinputname1
 1          10.4       37          2        customuserinputname2
 2          22.1       55          1        userinputname1
 2          22.1       37          2        customuserinputname2
 3          43.5       55          1        userinputname1
 3          43.5       37          2        customuserinputname2
 4          24.1       55          1        userinputname1
 4          24.1       55          2        customuserinputname2
...         ...        ...
34          37.8       75          1        userinputname1
34          37.8       99          2        customuserinputname2
35          12.8       75          1        userinputname1
35          12.8       99          2        customuserinputname2

FcName对于任何给定的FcNum都是相同的。因此FcNum == 2将在整个数据框中具有名称customeuserinputname2(但是,最终用户能够更改此名称,这意味着在add_trace中我不能仅将名称变量设置为{{1} }})。因此对于第一个add_trace,因为我将df过滤为customuserinputname2,这意味着FcName列中的值将始终为FcNum == 1

我的问题是(我相信)有点简单。我可以输入一些代替userinputname1的内容,这会导致跟踪的名称被设置为数据框~paste(FcName)列中的(第一个/最后一个?)字符串值吗?

0 个答案:

没有答案