您好,登錄后才能下訂單哦!
R語言拼圖工具customLayout怎么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在CRAN更新的R包中,發現了一個挺有意思的R包——customLayout,聽名字就很神奇。
它可以用來完成自由拼圖,可以使用矩陣自定義圖形位置和順序,用數字來定義每一個模塊的長寬比,試用了一遍簡直愛不釋手,在這里分享給大家。
這個包不僅支持數字拼圖,還支持R內置的base繪圖對象、grid繪圖對象等(也就是支持ggplot2對象)。
這樣的話,對于需要制作簡單儀表盤的場景,完全不必要使用rmarkdown+flexdashboard或者shiny+shinydashboard也可以快速生成儀表盤原型。
customLayout包有CRAN版本,也有github版本可供下載:
install.packages("customLayout") devtools::install_github("zzawadz/customLayout")
簡單的數字拼圖:
通過設置簡單的數字矩陣以及對應的寬高比,可以非常方便的設置出來數字拼圖:
library(customLayout)library(magrittr) lay <- lay_new( mat = matrix(1:4, ncol = 2), widths = c(3, 2), heights = c(2, 1)) lay_show(lay)
其中mat指定要拼圖的數字矩陣,將1:4數字按照縱向順序拼成兩行,其中寬對比為3:2,高度比為2:1。
lay2 <- lay_new( matrix(1:4, nc = 2), widths = c(3, 5), heights = c(2, 4)) lay_show(lay2)
參數含義同上。
cl = lay_bind_col(lay, lay2, widths = c(3, 1)) lay_show(cl)
以上過程將前兩個例子橫向拼接,兩個模塊對象仍然支持設置款對比例(3:1)
lay3 <- lay_new(matrix(1:2)) lay4 <- lay_bind_row(cl, lay3, heights = c(5, 2)) lay_show(lay4)
不同層級的對象仍然支持拼接在一起。
除此之外,也可以將一個模塊嵌入到兩一個模塊特定位置。
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)
這里就將lay2嵌入到lay模塊的第四個區域,但may2內部的布局結構任然不變。
關于圖像對象的布局與拼接:
基礎繪圖對象的拼接:
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)
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)
customLayout包的版式布局思想非常簡單,就是基于數值矩陣的模塊化分割,同時不同層級的模塊也可相互拼接,這樣就可以像拼七巧板一樣拼出很多奇形怪狀的版式出來,甚至你使用這種版式來設計一個富有美感的超照片拼圖或者海報都有可能。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。