使用用户界面,nearpoint/renderprint/verbatimTextOutput('print') 在用户点击时显示部分变量
Posted
技术标签:
【中文标题】使用用户界面,nearpoint/renderprint/verbatimTextOutput(\'print\') 在用户点击时显示部分变量【英文标题】:using user interface, nearpoint/renderprint/verbatimTextOutput('print') to show part of variables on user click使用用户界面,nearpoint/renderprint/verbatimTextOutput('print') 在用户点击时显示部分变量 【发布时间】:2021-11-07 21:23:58 【问题描述】:下面附上我用于 Shiny 应用程序的代码。我想知道如何专门使用 click="plot_click"/near-point/render print 来显示部分数据()。如果你看附图,你会看到那一堆信息已经出现了see image,但我需要取“名字”,只有获胜次数。
#code------------------------------------
server<- function(input, output, session)
#wrangling data:
gslam<- as.data.frame(gslam1)
gslam$tournament <- sapply(gslam$tournament, function(val)
agrep(val, c('Australian Open', 'U.S.
Open','Wimbledon','FrenchOpen'),
value = TRUE))
#pivot plot based on Tournament
reactive_data<-reactive(
req(input$sel_tournament)
df<- gslam %>% filter(tournament %in%
input$sel_tournament)%>%group_by(winner,tournament)%>%
mutate(winningNumber=n())
df<-df %>% arrange(winner)
)
#dynamic list
observe(
updateSelectInput(session,"sel_tournament", choices =
gslam$tournament, select="U.S. Open")
)
# create the plot
output$WinnerPlot <- renderPlot(
g<- ggplot(reactive_data(),aes( y =winner, x
=winningNumber),decreasing=FALSE) +
theme(legend.position=none")
g+geom_bar(stat="identity",width=0.5, fill="black"))
输出$print = 渲染打印( 近点( reactive_data(), # 绘图数据 input$plot_click, # 输入变量以获取 x/y maxpoints = 1, # 只显示最近的单个点 threshold = 1000 # 基本上是一个搜索半径。设置这么大
# to show at least one point per click
))
output$Top5Plot <-renderPlot(
g<- ggplot(reactive_data(),aes( y =winner, x
=winningNumber),decreasing=FALSE) + theme(legend.position =
"none")
g+geom_bar(stat="identity",width=0.5, fill="black")
)
ui <- navbarPage("Grand Slam Shiny Application", id="cc",
tabPanel("Winners' Rank",
fluidRow(titlePanel("Grand Slam
ShinyApp"),
sidebarPanel(
selectInput(inputId =
"sel_tournament",label="Choose Tournament:","Names"))),
plotOutput(("WinnerPlot"), click="plot_click"),
verbatimTextOutput('print')
),
tabPanel("Top 5 Winners' Performance",
plotOutput("Top5Plot"))
)
# Run the App
shinyApp(ui, server)
【问题讨论】:
【参考方案1】:您可以在nearPoints
中获得dplyr::select
的帮助。
output$print = renderPrint(
nearPoints(
dplyr::select(reactive_data(), winner, winningNumber),
input$plot_click,
maxpoints = 1,
threshold = 1000
))
【讨论】:
感谢您的评论。我已经测试过,但它并没有改变输出,当我点击时仍然输出所有信息。 我明白了。不幸的是,我无法对此进行测试,因为您尚未共享数据以重现该问题。以上是关于使用用户界面,nearpoint/renderprint/verbatimTextOutput('print') 在用户点击时显示部分变量的主要内容,如果未能解决你的问题,请参考以下文章