溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言拼圖工具customLayout怎么用

發(fā)布時間:2021-11-22 09:32:47 來源:億速云 閱讀:398 作者:柒染 欄目:大數(shù)據(jù)

R語言拼圖工具customLayout怎么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

在CRAN更新的R包中,發(fā)現(xiàn)了一個挺有意思的R包——customLayout,聽名字就很神奇。

它可以用來完成自由拼圖,可以使用矩陣自定義圖形位置和順序,用數(shù)字來定義每一個模塊的長寬比,試用了一遍簡直愛不釋手,在這里分享給大家。

這個包不僅支持?jǐn)?shù)字拼圖,還支持R內(nèi)置的base繪圖對象、grid繪圖對象等(也就是支持ggplot2對象)。

這樣的話,對于需要制作簡單儀表盤的場景,完全不必要使用rmarkdown+flexdashboard或者shiny+shinydashboard也可以快速生成儀表盤原型。

customLayout包有CRAN版本,也有g(shù)ithub版本可供下載:

install.packages("customLayout")
devtools::install_github("zzawadz/customLayout")

簡單的數(shù)字拼圖:

通過設(shè)置簡單的數(shù)字矩陣以及對應(yīng)的寬高比,可以非常方便的設(shè)置出來數(shù)字拼圖:

library(customLayout)library(magrittr)

lay <- lay_new(
  mat = matrix(1:4, ncol = 2),
  widths = c(3, 2),
  heights = c(2, 1))  
lay_show(lay)

R語言拼圖工具customLayout怎么用

其中mat指定要拼圖的數(shù)字矩陣,將1:4數(shù)字按照縱向順序拼成兩行,其中寬對比為3:2,高度比為2:1。

lay2 <- lay_new(
  matrix(1:4, nc = 2),
  widths = c(3, 5),
  heights = c(2, 4))
lay_show(lay2)

參數(shù)含義同上。

R語言拼圖工具customLayout怎么用

cl = lay_bind_col(lay, lay2, widths = c(3, 1))
lay_show(cl)

R語言拼圖工具customLayout怎么用

以上過程將前兩個例子橫向拼接,兩個模塊對象仍然支持設(shè)置款對比例(3:1)

lay3 <- lay_new(matrix(1:2))
lay4 <- lay_bind_row(cl, lay3, heights = c(5, 2))
lay_show(lay4)

R語言拼圖工具customLayout怎么用

不同層級的對象仍然支持拼接在一起。

除此之外,也可以將一個模塊嵌入到兩一個模塊特定位置。

lay <- lay_new(
  matrix(1:4, nc = 2),
  widths = c(3, 2),
  heights = c(2, 1))
lay_show(lay)

lay2 <- lay_new(
  matrix(1:4, nc = 2),
  widths = c(3, 5),
  heights = c(2, 4))
lay_show(lay2)

slay <- lay_split_field(lay, lay2, field = 4)
lay_show(slay)

R語言拼圖工具customLayout怎么用

這里就將lay2嵌入到lay模塊的第四個區(qū)域,但may2內(nèi)部的布局結(jié)構(gòu)任然不變。

關(guān)于圖像對象的布局與拼接:

基礎(chǔ)繪圖對象的拼接:

par(mar = c(3, 2, 2, 1))
lay  <- lay_new(
  matrix(1:4, nc = 2),
  widths = c(3, 2),
  heights = c(2, 1))
lay2 <- lay_new(matrix(1:3))
cl   <- lay_bind_col(lay, lay2, widths = c(3, 1))
lay_show(cl)
lay_set(cl) # initialize drawing areaset.seed(123)
plot(1:100 + rnorm(100))
plot(rnorm(100), type = "l")
hist(rnorm(500))
acf(rnorm(100))
pie(c(3, 4, 6), col = 2:4)
pie(c(3, 2, 7), col = 2:4 + 3)
pie(c(5, 4, 2), col = 2:4 + 6)

R語言拼圖工具customLayout怎么用

grid(ggplot2)圖形對象的拼接:

library(ggplot2)library(gridExtra)

lay  <- lay_new( matrix(1:2, ncol = 1))
lay2 <- lay_new(matrix(1:3))
cl   <- lay_bind_col(lay, lay2, widths = c(3, 1))
cuts <- sort(unique(diamonds[["cut"]]),decreasing = TRUE)

make_cut_plot <- function(cut) {
  dd <- diamonds[diamonds[["cut"]] == cut, ]
  ggplot(dd) +
      geom_point(aes(carat, price)) +
      facet_wrap("cut")
}

plots <- lapply(cuts, make_cut_plot)
lay_grid(plots, cl)

R語言拼圖工具customLayout怎么用

customLayout包的版式布局思想非常簡單,就是基于數(shù)值矩陣的模塊化分割,同時不同層級的模塊也可相互拼接,這樣就可以像拼七巧板一樣拼出很多奇形怪狀的版式出來,甚至你使用這種版式來設(shè)計一個富有美感的超照片拼圖或者海報都有可能。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI