这是一个基于Shiny框架的R语言应用程序,用于展示某项数据的统计、浏览数据、网络分析等功能。
function(input, output, session) {
定义Shiny应用程序的回调函数,接收输入参数input
,输出结果到UI界面output
,并提供与会话相关的信息session
。
output$tools_count <- renderValueBox({
valueBox(
value = 100, # formatC(downloadRate, digits = 1, format = "f"),
subtitle = "某项数据的统计",
icon = icon("area-chart"),
color = "yellow" # if (downloadRate >= input$rateThreshold) "yellow" else "aqua"
)
})
在UI界面上渲染一个值盒子(value box),其中包含某项数据的统计结果。使用了shinydashboard和fontawesome等库。
get.slider.year.range <- reactive({
#
data.frame(start = input$year.range[1],
end = input$year.range[2]
)
})
通过响应式函数实时获取用户在页面上选择年份范围的值,并将其转换成一个数据框。
load("data/statistics/publications.statistics.RData")
output$plot.publications.count <- renderEcharts4r({
data4plot <- publications.statistics.data
range <- get.slider.year.range()
data4plot <- subset(data4plot, Year <= range$end & Year >= range$start)
statistic.data <- get.statistic.data4echart4r(data4plot)
width = 20
statistic.data %>%
e_charts(years) %>%
e_bar(tools, barWidth = width) %>%
e_pictorial(papers, symbol = "rect", symbolRepeat = TRUE, z = 1,
symbolSize = c(width, 4)) %>%
e_theme("westeros") %>%
e_title("",subtext = "The counts of publications")
})
渲染一个基于ECharts库的柱状图,用于展示论文数量的统计结果。首先通过load()
函数加载预处理好的数据,然后使用响应式函数获取用户选择的年份范围。接着对数据进行子集筛选,并将其转换成适合ECharts绘图的格式。最后调用e_charts()
等函数生成柱状图。
output$showtable = DT::renderDataTable({
datatable(mtcars, extensions = 'Responsive')
})
在UI界面上渲染一个可交互的响应式数据表格,展示了mtcars数据集。
load("data/networks/tool.review.edge.data.RData")
load("data/networks/tool.review.node.data.RData")
get.network.slider.year.range <- reactive({
#
data.frame(start = input$network.range[1],
end = input$network.range[2]
)
})
output$plot.network <- renderEcharts4r({
range <- get.network.slider.year.range()
nodes <- subset(tool.review.node.data, year <= range$end & year >= range$start)
nodes$citation <- nodes$citation + 10
edges <- tool.review.edge.data
e_charts() %>%
e_graph() %>%
#e_graph_gl(layout = "force") %>%
e_graph_nodes(nodes, pmid, citation, size, type) %>%
e_graph_edges(edges, source, target) %>%
e_tooltip() %>%
e_show_loading()
})
渲染一个基于ECharts库的节点图,用于展示工具之间的关联网络。首先通过load()
函数加载预处理好的数据,然后使用响应式函数获取用户选择的年份范围。接着对数据进行子集筛选,并将其转换成适合ECharts绘图的格式。最后调用e_charts()
等函数生成节点图。
整个代码是一个典型的Shiny应用程序回调函数,通过响应式编程实现了与用户交互、动态更新页面内容、展示可视化结果等功能。