繁体   English   中英

R 中使用闪亮仪表板的动态饼图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM