我有以下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)
列中的(第一个/最后一个?)字符串值吗?