分享

盘点强大的shinyUI美化包

 微笑如酒 2019-02-15

   大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

   就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

   这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

从前只知道shiny和shinydashboard,开发简单的网页是够的,但一旦对颜值有了要求,就不能对html和css丝毫不知。颜值与技术齐飞啦啦啦。
关于shiny与CSS:https://shiny./articles/css.html

这几天搜索发现了几个UI包,学会了基本操作,来分享一下。

1.shinythemes

shiny主题,最兼容原始shiny的美化包,内置http:///上几乎所有的bootstrap主题,手到擒来。是这样的:

链接:https://rstudio./shinythemes/
shinytheme有一个很好的功能:themeselector,可以在线切换主题,方便选择和比较。

if(!require(shinythemes)) install.packages('shinythemes')
shinyApp(
  ui = fluidPage(
    shinythemes::themeSelector(),  # <>
    sidebarPanel(
      textInput('txt''Text input:''text here'),
      sliderInput('slider''Slider input:'110030),
      actionButton('action''Button'),
      actionButton('action2''Button2'class = 'btn-success'),
      selectInput('txt1','species', c('a','b','c'))
    ),
    mainPanel(
      tabsetPanel(
        tabPanel('Tab 1'),
        tabPanel('Tab 2')
      )
    )
  ),
  server = function(inputoutput) {}
)

2.dashboardthemes

如果网页是用shinydashboard写的,shiny主题很多用不了。这事就有了dashboardthemes:
可供选择的只有七个主题。但扩展性非常强,可以自己写主题,每一个控件都是可改动的,非常实用。


链接:https://rstudio./shinythemes/


3.semantic.dashboard

https://github.com/Appsilon/semantic.dashboard
https:///create-outstanding-dashboards-with-the-new-semantic-dashboard-package/
这是一个公司开发的dashboard包美化版本,示例造型是这样的:

可选的theme有不少:http:///themes/
参考链接:https://github.com/Appsilon/semantic.dashboard
https:///create-outstanding-dashboards-with-the-new-semantic-dashboard-package/

library(shiny)
library(semantic.dashboard)

ui <>
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

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

}
)

shinyApp(ui, server)

示例的完整代码:

library(shiny)
library(semantic.dashboard)
library(ggplot2)
library(plotly)
library(DT)

ui <>
  dashboardHeader(color = 'blue',title = 'Dashboard Demo', inverted = TRUE),
  dashboardSidebar(
    size = 'thin', color = 'teal',
    sidebarMenu(
      menuItem(tabName = 'main''Main', icon = icon('car')),
      menuItem(tabName = 'extra''Extra', icon = icon('table'))
    )
  ),
  dashboardBody(
    tabItems(
      selected = 1,
      tabItem(
        tabName = 'main',
        fluidRow(
          box(width = 8,
              title = 'Graph 1',
              color = 'green', ribbon = TRUE, title_side = 'top right',
              column(width = 8,
                plotOutput('boxplot1')
              )
          ),
          box(width = 8,
              title = 'Graph 2',
              color = 'red', ribbon = TRUE, title_side = 'top right',
              column(width = 8,
                plotlyOutput('dotplot1')
              )
          )
        )
      ),
      tabItem(
        tabName = 'extra',
        fluidRow(
          dataTableOutput('carstable')
        )
      )
    )
  ), theme = 'cerulean'
)

server <>function(input, output, session) {
  data('mtcars')
  colscale <>[['red']], semantic_palette[['green']], semantic_palette[['blue']])
  mtcars$am <>0,1),
                      labels=c('Automatic','Manual'))
  output$boxplot1 <>
    ggplot(mtcars, aes(x = am, y = mpg)) +
       geom_boxplot(fill = semantic_palette[['green']]) + 
       xlab('gearbox') + ylab('Miles per gallon')
  })

  output$dotplot1 <>
    ggplotly(ggplot(mtcars, aes(wt, mpg))
             + geom_point(aes(colour=factor(cyl), size = qsec))
             + scale_colour_manual(values = colscale)
             )
  })
  output$carstable <>
})

shinyApp(ui, server)

4.bs4Dash

这个包可以作为shiny的辅助,是18年刚开发的,目前基本没有中文教程,看下他的结构:
cran页面:https://cran./web/packages/bs4Dash/index.html
github:https://github.com/RinteRface/bs4Dash

(1)空框架

if(!require(bs4Dash))install.packages('bs4Dash')
library(shiny)
library(bs4Dash)

 shiny::shinyApp(
   ui = bs4DashPage(
    navbar = bs4DashNavbar(),
    sidebar = bs4DashSidebar(),
    controlbar = bs4DashControlbar(),
    footer = bs4DashFooter(),
    title = 'Basic Dashboard',
    body = bs4DashBody()
   ),
   server = function(inputoutput) {}
 )

(2)示例网页,除了前面的加载,其实只有一行代码看示例

if(!require(fontawesome))devtools::install_github('rstudio/fontawesome')
if(!require(shinyWidgets))install.packages('shinyWidgets')
if(!require(bs4Dash))install.packages('bs4Dash')
if(!require(plotly))install.packages('plotly')
library(shiny)
library(fontawesome)
library(shinyWidgets)
library(bs4Dash)
library(plotly)

bs4DashGallery()

隔壁生信技能树公益视频合辑(学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!)

国内看B站,教学视频链接:https://m.bilibili.com/space/338686099 
国外看YouTube,教学视频链接:https://m./channel/UC67sImqK7V8tSWHMG8azIVA/playlists 



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多