久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

「R shiny 基礎(chǔ)」如何進(jìn)行網(wǎng)頁布局

 生物_醫(yī)藥_科研 2019-02-03

在第一篇「R shiny 基礎(chǔ)」初識Shiny ,,我們了解了Shiny應(yīng)用主要分為兩個部分,,UI對象和 server函數(shù),,這一篇將會介紹如何進(jìn)行網(wǎng)頁布局,。

準(zhǔn)備

在開始之前,你需要創(chuàng)建一個文件夾,,其中有一個 app.R文件,,復(fù)制如下的內(nèi)容到 app.R

  1. library(shiny)

  2. # 定義UI

  3. ui <> fluidPage(

  4. )

  5. # 定義服務(wù)端

  6. server <> function(input, output){

  7. }


  8. # 運行app

  9. shinyApp(ui = ui, server = server)

基本布局(Layout)

當(dāng)你打開任何一個網(wǎng)頁,每個網(wǎng)頁的不同元素的擺放方式就是布局,,例如我的簡書主頁

我們的目標(biāo)是快速的構(gòu)建一個湊合用的網(wǎng)頁應(yīng)用,,而如果從頭搭建,那么你需要學(xué)一堆HTML語法和CSS樣式,,基本上就把我們勸退了,。好在Shiny提供了一系列高級函數(shù),讓我們“暫時”不用考慮底層的HTML和CSS,。

HTML元素描述的是內(nèi)容是什么,,CSS用于描述內(nèi)容應(yīng)該怎么樣,。

先學(xué)初學(xué)者必須掌握的布局三板斧, fluidPage, titlePanelsidebarLayout,

  • fluidPage: 它的作用和其命名一致,,就是創(chuàng)建一個流動布局的頁面,。

  • titlePanel: 標(biāo)題欄

  • sidebarLayout: 常用的邊欄布局,接受如下兩個函數(shù)作為輸入

  • sidebarPanel: 邊欄

  • mainPanel: 主體部分

  1. ui <> fluidPage(

  2.  titlePanel('title Panel'),

  3.  sidebarLayout(

  4.    sidebarPanel('sidebar'),

  5.    mainPanel('main panler')


  6.  )

效果如下:

titlePanelsidebarLaytou創(chuàng)建了我們Shiny應(yīng)用的基本布局,,對于我們初學(xué)者基本就夠用了,。在我們有一定基礎(chǔ)后,我們可以嘗試用 fluidRowColumn手動搭建布局,。

雖然結(jié)果不是特別好看,,但請牢記當(dāng)我們學(xué)習(xí)一個新事物的時候,不要想著完美,,而是追求完成,。只有完成了,你才能有資格談完美,。

HTML內(nèi)容

在搭建好基本布局的前提下,,我們可以在 *Panel函數(shù)中填充更多內(nèi)容。比方說,,出現(xiàn)在 siderbarPanel中的'siderbar',,就是我們加入的文字內(nèi)容。

從最終的HTML角度來看,,sidebarLayout中是將網(wǎng)頁分隔成4:8的兩個部分,,sidebarPanel是4, mainPanel是8。 且sidebarPanel輸入的內(nèi)容是都在HTML的 form 層級下

為了增加更多高級的內(nèi)容,,我們可以Shiny的HTML 標(biāo)簽函數(shù)(tag),,等價于HTML5的標(biāo)簽(tag)。

shiny 函數(shù)等價的HTML5 標(biāo)簽結(jié)果
p
段落
h1
第一級標(biāo)題
h2
第二級標(biāo)題
h3
第三級標(biāo)題
h4
第四級標(biāo)題
h5
第五級標(biāo)題r
h6
第六級標(biāo)題
a
超鏈接
br
空白行
div
分隔文本
span
行內(nèi)分割
pre
等寬文本
code
代碼
img
圖片
strong
加粗
em
強(qiáng)調(diào)
HTML
原生HTML代碼

寫個代碼練習(xí)下

  1. ui <> fluidPage(

  2.  titlePanel('title Panel'),

  3.  sidebarLayout(

  4.    sidebarPanel(

  5.      tags$hgroup(h1('Side Bar'), h2('Panel'))


  6.    ),

  7.    mainPanel(

  8.      HTML('

    You can add content to your Shiny app by placing it inside a *Panel function. For example, the apps above display a character string in each of their panels. The words “sidebar panel” appear in the sidebar panel, because we added the string to the sidebarPanel function, e.g. sidebarPanel(\'sidebar panel\'). The same is true for the text in the title panel and the main panel.

    '),

  9.      div()

  10.    )

  11.  )

  12. )

格式化樣式

上面只用了HTML的元素,,如果我們希望標(biāo)題能夠居中,,改變字體和顏色,那么就需要對HTML中元素的屬性進(jìn)行修改,。

  1. ui <> fluidPage(

  2.  titlePanel('title Panel'),

  3.  sidebarLayout(

  4.    sidebarPanel(

  5.      h1('Side Bar Panel')


  6.    ),

  7.    mainPanel(

  8.      h1('First Header', align='center',

  9.        style ='font-family: 'times'; font-size: 32pt '),

  10.      h2('Second Header', align='center',

  11.         stype = 'font-family: 'arial'; font-size: 14pt'),

  12.      div(),

  13.      p('I fill blue', style = 'color:blue')

  14.    )

  15.  )

  16. )

關(guān)于元素的屬性,,可以在w3schools學(xué)習(xí)

圖片和超鏈接

除了簡單的文本以外,我們還可以在網(wǎng)頁中增加圖片,,為文本增加超鏈接,。圖片的內(nèi)容要放和 app.R同一級的 www文件夾下

  1. ui <> fluidPage(

  2.  titlePanel('title Panel'),

  3.  sidebarLayout(

  4.    sidebarPanel(

  5.      h1('Side Bar Panel')


  6.    ),

  7.    mainPanel(

  8.      h1('Hello Shiny', align='center',

  9.        style ='font-family: 'times'; font-size: 32pt '),

  10.      div(),

  11.      p('This images was download from', a(href='https://www.jianshu.com/p/e2495bbc7bd1', 'here' )),

  12.      img(src = '2013053-4dd190b5c709b535.png')

  13.    )

  14.  )

Shiny支持的Tags在如下兩個鏈接中有介紹

  • http://shiny./articles/html-tags.html

  • http://shiny./articles/tag-glossary.html

小練習(xí)

請還原出如下的網(wǎng)頁布局

其中Rstuio的圖片下載地址為http://shiny./tutorial/written-tutorial/lesson2/www/rstudio.png

復(fù)習(xí)

經(jīng)過這一篇的學(xué)習(xí),我們現(xiàn)在能完成如下內(nèi)容

  • 使用 fluidPagetitlePanel和 sidebarLayout創(chuàng)建用戶界面

  • 使用Shiny的tag函數(shù)構(gòu)建HTML元素

  • 為每個tag函數(shù)設(shè)置HTML屬性

  • 通過往 titlePanelsidebarPanel 或 mainPanel傳入元素填充網(wǎng)頁

  • 在子布局中使用 ,分隔多個元素

  • 增加 www文件夾下的圖片

到目前為止,,我們只使用了HTML的基本元素構(gòu)建用戶界面,,下一節(jié)將會學(xué)習(xí)在網(wǎng)頁中增加一些小工具,例如下拉欄,。

參考

  • http://shiny./tutorial/written-tutorial/lesson2/

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多