[英]Dynamic Pie Chart in R Using A Shiny Dashboard
我目前正在开发一个 Shiny 仪表板,它有一个滑块,可以使用滑块输入输出给定波动率值的股票、黄金和白银的最佳投资组合权重。 在给定滑块输入的情况下,我已经能够使用动态文本输出来输出值,但是我无法弄清楚如何将这些值转换为图形,因为 Shiny 中的文本输出似乎需要一个函数。 如何使用从slidervalues()
获得的值向此代码添加饼图? 它输出一个包含 5 个数值的列表,现在我想在饼图中绘制其中的前 3 个:
library(shiny)
shinyUI(fluidPage(
headerPanel(title = "Volatility Slider"),
sidebarLayout(
sidebarPanel(
sliderInput("Risk","Volatility", 0, 0.24, 0.12)
),
mainPanel(
textOutput("Output")
)
)
))
server <- function(input, output) {
sliderValues <- reactive({
#This part finds the optimal portfolio using CAPM(which is found in a different script).
custom <- three_assets %>%
filter(sd_p > input$Risk,
sd_p < input$Risk+0.0001)
max_er_custom <- custom[custom$er_p == max(custom$er_p)]
toString(max_er_custom)
})
output$Output <- renderText({
sliderValues()
})
}
这是仪表板的屏幕截图。 前三个值是三个资产的权重,第四个值是该投资组合的预期回报,最后一个值是该投资组合的波动率,均使用历史数据。
不知道如何复制你的逻辑没有你的文件,但在这里是在输入滑块确定在该值的示例sliderValues
数据帧,其又用于创建一个条形图。
library(shiny); library(ggplot2)
ui <- fluidPage(
headerPanel(title = "Volatility Slider"),
sidebarLayout(
sidebarPanel(
sliderInput("Risk","Volatility", 0, 0.24, 0.12)
),
mainPanel(
plotOutput("Output")
)
)
)
server <- function(input, output) {
sliderValues <- reactive({
data.frame(values = c(input$Risk, 0.7 * (1 - input$Risk), 0.3 * (1-input$Risk)),
categories = c("A", "B", "C"))
})
output$Output <- renderPlot(
ggplot(sliderValues(), aes(1, values, fill = categories)) +
geom_col() +
coord_polar(theta = "y")
)}
shinyApp(ui = ui, server = server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.