R 修改绘图折线图中的悬停模板
我在下面有一个闪亮的应用程序,我想在其中修改R 修改绘图折线图中的悬停模板,r,shiny,plotly,R,Shiny,Plotly,我在下面有一个闪亮的应用程序,我想在其中修改悬停模板,使其显示名称、周和实验室(更美观的值)。问题是我已经使用了customdata来显示lab,我不知道如何显示Name library(plotly) library(shiny) full_data<-data.frame("Name"=c("Q1","Q2","Q3","Q1","Q2","Q3"
悬停模板
,使其显示名称
、周
和实验室
(更美观的值)。问题是我已经使用了customdata
来显示lab
,我不知道如何显示Name
library(plotly)
library(shiny)
full_data<-data.frame("Name"=c("Q1","Q2","Q3","Q1","Q2","Q3"),"Values"=c(245645,866556,26440,65046,641131,463265),
"Week"=c("a","b","c","d","e","f"))
desc <- full_data %>%
group_by(Name,Week) %>%
summarise(values = sum(Values)) %>%
mutate(lab = scales::label_number_si(accuracy = 0.1)(values))
shinyApp(
ui = fluidPage(
plotlyOutput("pl")
)
,
server = function(input, output, session) {
output$pl<-renderPlotly({
plot_ly(desc,
x = ~Week,
y = ~values,
#text = ~values,
color = ~Name,
colors = c("#60ab3d","#6bbabf","#c4d436","#3e5b84","#028c75","red"),
customdata = mapply(function(x,y) list(x,y), desc$lab, desc$Name, SIMPLIFY = FALSE)) %>%
add_trace(
type = 'scatter',
mode = 'lines+markers',
hovertemplate = paste(
"%{x}",
"%{customdata[0]}",
"%{customdata[1]}",
"<extra></extra>",
sep = "\n"),
hoveron = 'points')
})
}
)
library(plotly)
图书馆(闪亮)
完整数据%
总结(值=总和(值))%>%
变异(实验室=刻度::标签编号(精度=0.1)(值))
shinyApp(
ui=fluidPage(
绘图输出(“pl”)
)
,
服务器=功能(输入、输出、会话){
产出$pl%
添加跟踪(
类型='scatter',
模式='行+标记',
hovertemplate=粘贴(
“%$x}”,
“%{customdata[0]}”,
“%{customdata[1]}”,
"",
sep=“\n”),
hoveron='点')
})
}
)
试试这个:
customdata = mapply(function(x,y) list(x,y), desc$lab, desc$Name, SIMPLIFY = FALSE)
及
hovertemplate=粘贴(
“%{color}”,
“%$x}”,
“%{customdata[0]}”,
“%{customdata[1]}”,
"",
sep=“\n”)
很抱歉,我编辑了一点我的数据帧,但它不起作用now@firmo23尝试mapply(函数(x,y)列表(x,y),desc$lab,desc$Name,SIMPLIFY=FALSE,USE.NAMES=FALSE)
。我遇到了同样的问题:TIBLE列必须具有兼容的大小。*大小2:列x
,y
,颜色
,悬停模板
,.plotlyGroupIndex
,还有2个。*大小6:列customdata
。[34mℹ[39m仅回收大小为1的值。@firmo23我认为您误用了dplyr
。我不熟悉此软件包。但我认为在使用group\u by
时,您必须使用ungroup
。desc数据集是正常创建的。问题是mapply()
hovertemplate = paste(
"%{color}",
"%{x}",
"%{customdata[0]}",
"%{customdata[1]}",
"<extra></extra>",
sep = "\n")