2017-04-20 5 views
1

rpivotTableパッケージのデフォルトの色を変更しようとしています。私はパッケージの作成者のギブスにも問題を投稿しましたが、誰もまだ答えていないので、誰かがこの問題を解決する方法を知っていれば、私は感謝以上のことです。ShinyのrpivotTableの色を変更する

私の主な問題は、変数の選択以下の長方形の青い色に変化している:私は、インターネット上で見つけたこの機能によりExample

を、私は、全体の背景を変更するために管理しますが、特定のではない事私は(シャイニーの外側にのみ、これまでに)欲しい:

style_widget <- function(hw=NULL, style="", addl_selector="") { 
    stopifnot(!is.null(hw), inherits(hw, "htmlwidget")) 

    # use current id of htmlwidget if already specified 
    elementId <- hw$elementId 
    if(is.null(elementId)) { 
    # borrow htmlwidgets unique id creator 
    elementId <- sprintf(
     'htmlwidget-%s', 
     htmlwidgets:::createWidgetId() 
    ) 
    hw$elementId <- elementId 
    } 

    htmlwidgets::prependContent(
    hw, 
    htmltools::tags$style(
     sprintf(
     "#%s %s {%s}", 
     elementId, 
     addl_selector, 
     style 
    ) 
    ) 
) 
} 
pivot_graph<-rpivotTable(mtcars) 
browsable(
    tagList(
    style_widget(hw=pivot_graph, "background-color: rgb(245, 245, 245);", "table td") 
) 
) 

しかし、私は光沢がある、それを実行しようとするとき、私はそれがATの場合でも、どこで、どのようにそれを行うに置く(またはするかを把握することはできませんすべてこの機能で可能です)。どんな助けもありがとうございます。これまでの私の光沢のあるコード:

library(shiny) 
library(rpivotTable) 
library(rvest) 
ui <- fluidPage(
    titlePanel("Cars"), 
    sidebarLayout(
    sidebarPanel(
     fileInput('file1', 'Choose CSV File', 
       accept=c('text/csv','text/comma-separated-values,text/plain','.csv')), 
     actionButton("save1","Save Table 1") 
     # actionButton("save2","Save Table 2") 
    ), 
    mainPanel(
     tabsetPanel(
     tabPanel("Pivot Table 1", 
       rpivotTableOutput("table")), 
     tabPanel("Pivot Table 2", 
       rpivotTableOutput("table2")) 
    ) 
    ) 
) 



) 


server <- function(input, output,session) 
{ 

    session$onSessionEnded(stopApp) 

    observe({ 
    file1 = input$file1 
    if (is.null(file1)) { 
     return(NULL) 
    } 
    st_data <<- read.csv(file1$datapath) 



    output$table <- renderRpivotTable({ 
     rpivotTable(mtcars, 
        rendererName="Table", 
        onRefresh = htmlwidgets::JS("function(config) {Shiny.onInputChange('myData', 
               document.getElementById('table').innerHTML); }") 
    ) 
    }) 


    output$table2 <- renderRpivotTable({ 
     rpivotTable(mtcars,aggregatorName="Average", 
        rendererName="Table", 
        onRefresh = htmlwidgets::JS("function(config) {Shiny.onInputChange('myData', 
                document.getElementById('table').innerHTML); }") 
    ) 
    }) 

    summarydf <- eventReactive(input$myData,{ 
     input$myData %>% 
     read_html %>% 
     html_table(fill = TRUE) %>% 
     .[[2]] 
    }) 

    observeEvent(input$save1, { 
     if(nrow(summarydf())<1) return() 
     write.csv(summarydf(), file="./cars1.csv") 
    }) 

    # summarydf1 <- eventReactive(input$myData1,{ 
    # input$myData1 %>% 
    #  read_html %>% 
    #  html_table(fill = TRUE) %>% 
    #  .[[4]] 
    # }) 
    # 
    # observeEvent(input$save2, { 
    # if(nrow(summarydf1())<1) return() 
    # write.csv(summarydf1(), file="./cars2.csv") 
    # }) 
    }) 
} 

shinyApp(ui = ui, server = server) 

答えて

3

次のコードは、ライトブルーを非常に濃い青色に変更します。

同様の方法でpivot.min.cssコードを変更することができます。唯一の課題は、どちらが正しい要素であるかを特定することです。

色を変更するには、JavaScriptカラーマップを検索し、#000080を必要なものに変更します。

library(shiny) 

df <- iris 

ui <- fluidPage(
      tags$style(type="text/css",".pvtRows, .pvtCols { background: #000080 none repeat scroll 0 0; }"), 

         fluidRow(
          column(width=10, rpivotTableOutput("pivot")) 
          ) 
         ) 

server <- function(input, output, session) { 

output$pivot<-renderRpivotTable({ 

      rpivotTable(df, 
       rendererName="Heatmap", 
       cols=c("Species"), 
       rows=c("Petal.Width"), 
       aggregatorName="Count" 
       ) 


     }) 

} 

shinyApp(ui = ui, server = server) 

あなたの要件を満たしているかどうか教えてください。

+0

はい!完璧に動作します!答えてくれてありがとう! –

関連する問題