Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中具有相似结构的多重高位图表_R_Highcharts_Shiny_Shinydashboard - Fatal编程技术网

R中具有相似结构的多重高位图表

R中具有相似结构的多重高位图表,r,highcharts,shiny,shinydashboard,R,Highcharts,Shiny,Shinydashboard,我的闪亮应用程序中有多个highcharts,它们的结构都很相似,因此我尝试使用一个函数来概括: 在我的数据文件中: 编辑 set.seed(5) 数据% hc_添加_系列(df,“线”, HCAE(x=x,y=y ,组=组), dataLabels=list(enabled=TRUE, 样式=列表(fontSize='13px')) ) %>% hc_图例(启用=真)%>% hc_工具提示(共享=真,十字光标=真 ,style=list(fontSize=“18px”) ) %>% hc_添

我的闪亮应用程序中有多个highcharts,它们的结构都很相似,因此我尝试使用一个函数来概括:

  • 在我的数据文件中:
  • 编辑

    set.seed(5)
    数据%
    hc_添加_系列(df,“线”,
    HCAE(x=x,y=y
    ,组=组),
    dataLabels=list(enabled=TRUE,
    样式=列表(fontSize='13px'))
    ) %>% 
    hc_图例(启用=真)%>%
    hc_工具提示(共享=真,十字光标=真
    ,style=list(fontSize=“18px”)
    ) %>%
    hc_添加_主题(主题)}
    
  • 在我的服务器文件中(对于每个highchart)
  • 输出$usuarisgral

    只需使用库
    rlang
    中的函数
    ensym
    。因此,在我的代码中,JU将
    hcaes
    行更改为:

    hcaes(x=!!rlang::ensym(x),y=!!rlang::ensym(y),group=!!rlang::ensym(group))


    这是一个常见问题:
    hcaes
    基于
    ggplot2::aes
    ,其行为类似,幸运的是,您可以将其作为字符串访问,
    ggplot2
    具有
    aes\u字符串
    和highcharter具有
    hcaes\u字符串

    library(shiny)
    library(highcharter)
    
    gral  <- function(df,x,y,group,theme){
        highchart() %>%
            hc_xAxis(type = "category") %>%
            hc_add_series(df, "line",
                          hcaes_string(x = x, y = y, group = group),
                          dataLabels = list(enabled = TRUE,
                                            style = list(fontSize = '13px'))) %>% 
            hc_legend(enabled = TRUE) %>% 
            hc_tooltip(shared = TRUE, crosshairs = TRUE,style = list(fontSize = "18px")) %>%
            hc_add_theme(theme) 
    }
    
    ui <- basicPage(
        column(12,
               highchartOutput('usuariosgral')
        )
    )
    
    server <- function(input, output, session) {
        
        output$usuariosgral <- renderHighchart({  
            gral(df = mtcars,x ='mpg',y = 'disp',group ='cyl',theme = hc_theme_elementary())
        })
        
    }
    
    shinyApp(ui, server)
    
    库(闪亮)
    图书馆(高级特许)
    格拉尔%
    hc_xAxis(type=“category”)%%>%
    hc_添加_系列(df,“线”,
    hcaes_字符串(x=x,y=y,group=group),
    dataLabels=list(enabled=TRUE,
    样式=列表(fontSize='13px'))%>%
    hc_图例(启用=真)%>%
    hc_工具提示(共享=TRUE,十字光标=TRUE,样式=list(fontSize=“18px”))%>%
    hc_添加_主题(主题)
    }
    ui我找到了答案,以防对任何人都有用

    只需使用库
    rlang
    中的函数
    ensym
    。因此,在我的代码中,JU将
    hcaes
    行更改为:

    hcaes(x=!!rlang::ensym(x),y=!!rlang::ensym(y),group=!!rlang::ensym(group))


    您能否通过包含数据和完整的应用程序代码使此示例变得独立?阅读关于你的文章,你只需要回顾并了解你想要如何组织你的代码,Shiny被分成12列,你可以随意划分,只需要适合你的项目,我试着用
    hcaes\u string
    而不是
    hcaes
    ,但即使用你的例子也不起作用。谢谢你的回答,它帮助我找到了答案(在我的问题中是我找到的解决方案)。在这种情况下,最好是你自己创造一个答案并接受它
        gral <- function(df,x,y,group,theme){
        highchart() %>%
          hc_xAxis(type = "category") %>%
          hc_add_series(df, "line",
                        hcaes(x = x, y = y
                              ,group = group),
                        dataLabels = list(enabled = TRUE,
                                          style = list(fontSize = '13px'))
          ) %>% 
          hc_legend(enabled = TRUE) %>% 
          hc_tooltip(shared = TRUE, crosshairs = TRUE
                     ,style = list(fontSize = "18px")
          ) %>%
          hc_add_theme(theme) }
    
          output$usuariosgral <- renderHighchart({  gral(df = data, x = period, y = total,
          group = program, theme = hc_theme_elementary()) })
    
    library(shiny)
    library(highcharter)
    
    gral  <- function(df,x,y,group,theme){
        highchart() %>%
            hc_xAxis(type = "category") %>%
            hc_add_series(df, "line",
                          hcaes_string(x = x, y = y, group = group),
                          dataLabels = list(enabled = TRUE,
                                            style = list(fontSize = '13px'))) %>% 
            hc_legend(enabled = TRUE) %>% 
            hc_tooltip(shared = TRUE, crosshairs = TRUE,style = list(fontSize = "18px")) %>%
            hc_add_theme(theme) 
    }
    
    ui <- basicPage(
        column(12,
               highchartOutput('usuariosgral')
        )
    )
    
    server <- function(input, output, session) {
        
        output$usuariosgral <- renderHighchart({  
            gral(df = mtcars,x ='mpg',y = 'disp',group ='cyl',theme = hc_theme_elementary())
        })
        
    }
    
    shinyApp(ui, server)