目前最全的R語言-圖片的組合與拼接

2021-02-19 表哥有話講



前言

這篇是作者總結的目前最全的R語言—圖片組合和拼接,當然常言道:百密必有一疏,歡迎大家在評論區留言本篇沒有總結到的用於圖片組合和拼接的R包。做教程狠費精力的,別忘了點讚和轉發。謝謝。

1 customLayout包

參考來源:

https://www.rdocumentation.org/packages/customLayout/versions/0.2.0
https://mp.weixin.qq.com/s/zbp8pOQcNB4XBBF5SCg5GA

1.1 簡介

customLayout用於拼圖特別方便,尤其是儀錶盤布局
支持R內置的base繪圖對象,ggplot2對象(與grid結合 )

Hide

library(ggplot2)library(customLayout)

1.2 簡單畫布

通過設置簡單的數字矩陣以及對應的寬高比,可以非常方便的設置出來數字拼圖
關鍵函數:

lay_new() 創建拼圖畫布

lay_show() 顯示拼圖畫布

mat數字矩陣必須從1開始,且必須連續

library(ggplot2)library(customLayout)# 創建拼圖畫布lay1 <- lay_new(  mat = matrix(1:4, ncol = 2), # 矩陣分布,mat表示指定排版的數字矩陣  widths = c(3,2),             # 設定寬度比例  heights = c(2,1)             # 設置高度比例)# 顯示拼圖畫布lay_show(lay1) # 創建第2個拼圖畫布,與第1個結構一樣,只是比例不一樣lay2 <- lay_new(  matrix(1:4, nc = 2), widths = c(3, 5),heights = c(2, 4))lay_show(lay2)

1.3 畫布合併

其它拼圖包沒有的功能,非常好用
跟合併矩陣類似。分為行合併和列合併

lay_bind_col() 畫布列合併
lay_bind_col(x, y, widths = c(1, 1), addmax = TRUE) 參數widths表示指定合併寬度比

lay_bind_row() 畫布行合併
lay_bind_row(x, y, heights = c(1, 1), addmax = TRUE) 參數heights表示指定合併高度比

library(ggplot2)library(customLayout)# 畫布列合併cl_1 <- lay_bind_col(lay1, lay2, widths = c(3, 1))  # 指定合併寬度比為3:1lay_show(cl_1)# 畫布行合併cl_2 <- lay_bind_row(lay1, lay2, heights = c(3, 1))  # 指定合併高度比為3:1lay_show(cl_2)# 多次合併lay_show(lay_bind_col(cl_1, cl_2, widths = c(2:1)))

1.4 畫布嵌套

這個功能也是其它包沒有的,非常有用
關鍵函數:

參數lay表示大畫布,參數newlay表示要嵌套進去的小畫布,field表示指定要嵌套的區域編號

library(ggplot2)library(customLayout)slay <- lay_split_field(lay1, lay2, field = 1)  # 將畫布lay2嵌套進lay1的第1個區域,即左上角格子lay_show(slay)

library(ggplot2)library(customLayout)slay2 <- lay_split_field(lay = lay2, new = lay1, field = 4)  # 將畫布lay1嵌套進lay2的第4個區域,即右下角格子lay_show(slay2)

1.5 填充圖片

關鍵函數:

lay_set(layout) 將畫布layout設置為繪圖布局,用於base繪圖對象

lay_grid(grobs, lay, ...) 將繪圖對象grobs填充到畫布lay中, 用於ggplot2等繪圖對象

1.5.1 基礎繪圖對象填充

library(ggplot2)library(customLayout)par(mar = c(3, 2, 2, 1)) # 設定頁邊距# 創建排版畫布lay1  <- lay_new(    matrix(1:4, nc = 2), # 2行2列布局畫布  widths = c(3, 2),  heights = c(2, 1))lay2 <- lay_new(matrix(1:3)) # 3行1列布局畫布cl <- lay_bind_col(lay1, lay2, widths = c(3, 1)) # 畫布列合併lay_show(cl)lay_set(cl) # 設定繪圖對象布局 set.seed(123)# 繪圖填充plot(1:100 + rnorm(100)) # 填充到畫布第1格plot(rnorm(100), type = "l") # 填充到畫布第2格hist(rnorm(500))acf(rnorm(100)) # 填充到畫布第4格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)

1.5.2 ggplot2繪圖對象填充

library(ggplot2)library(customLayout)library(gridExtra)# 創建排版畫布lay1 <- lay_new(matrix(1:2, ncol = 1))  # 2行1列畫布lay2 <- lay_new(matrix(1:3))  # 3行1列畫布cl <- lay_bind_col(lay1, lay2, widths = c(3, 1))  # 畫布列合併# 創建數據cuts <- sort(unique(diamonds[["cut"]]), decreasing = TRUE)make_cut_plot <- function(cut) {    dd <- diamonds[cut == diamonds[["cut"]], ]  #    ggplot(dd) +      geom_point(aes(carat, price)) +     facet_wrap("cut")  # 封裝分面}plots <- lapply(cuts, make_cut_plot)  # 對不同切割水平的進行作圖lay_grid(plots, cl)  # 將繪圖對象依次填充到cl畫布中

2 cowplot包

cowplot是一個ggplot2包的簡單補充,意味著其可以為ggplot2提供出版物級的主題等。
更重要的是,這個包可以組合多個」ggplot2」繪製的圖為一個圖,並且為每個圖加上例如A,B,C等標籤,
這在具體的出版物上通常是要求的。 語法結構與ggplot類似,將ggplot2圖作為一個對象置於ggdraw()中
表達式:

draw_plot(plot, x = 0, y = 0, width = 1, height = 1, scale = 1)draw_text(text, x = 0.5, y = 0.5, size = 14, hjust = 0.5, vjust = 0.5,...)draw_plot_label(label, x = 0, y = 1, hjust = -0.5, vjust = 1.5, size = 16, fontface = "bold", family = NULL, colour = NULL, ...)

參數解釋:

plot 表示ggplot2繪圖對象

x, y 表示子圖的起點坐標(左下角坐標),在0-1之間,表示佔母圖的比例,

width, height 表示子圖長寬所佔比例,在0-1之間

text 表示要映射的文本向量

label 表示要映射的文本向量

其它參數與ggplot2中意思一樣

library(ggplot2)library(cowplot)library(showtext)font_add_google("Dancing Script", "Dancing")plot.iris <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +     geom_point() + facet_grid(cols = vars(Species)) # 按Species列分面plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) +   geom_point(size = 2.5) +    labs(title = "dot plot") plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) +   geom_bar() +   theme(axis.text.x = element_text(angle = 70, vjust = 0.5)) +   labs(title = "bar plot")gg <- ggdraw() +     draw_plot(plot.iris, 0, 0.5, 1, 0.5) + # 在母圖上半部,佔母圖比例1/2  draw_plot(plot.mpg, 0, 0, 0.5, 0.5) + # 在母圖左下角,佔母圖比例1/4  draw_plot(plot.diamonds, 0.5, 0, 0.5, 0.5) + # 在母圖右下角,佔母圖比例1/4 draw_plot_label(c("A", "B", "C"), c(0, 0, 0.5), c(1, 0.5, 0.5), size = 15, colour = "cyan", family = "Dancing") # 加上標籤,showtext_begin()print(gg)showtext_end()

3 grid 包

grid中文翻譯為網格,可將其解釋為畫布分割,通過設定相應的參數,從而可以任意的擺放圖形
常用函數:

grid.newpage() 創建新的畫布

grid.layout() 分割畫布,使用參數widths和heights指定分割比例 ,從上到下,從左到右排列

viewport() 在畫布中創建視窗

grid.show.viewport() 在畫布中展示視窗

grid.show.layout() 展示分割的畫布

pushViewport() 將新建的viewport推出去,即將工作區域切換到新的viewport

popViewport() 將當前的viewport刪除,其父viewport作為新的工作區域, 子viewport中的繪製的圖形不會被刪除

downViewport() 導航到子viewport,並作為工作區域,原viewport不會刪除

upViewport() 導航到父viewport,父viewport變為工作區域, 原viewport不會被刪除

seekViewport() 導航到name參數所在的viewport,並作為工作區域

grid.text() 輸出文本標籤,坐標只與畫布有關,與viewport無關

語法:

viewport(x = unit(0.5, "npc"), y = unit(0.5, "npc"),         width = unit(1, "npc"), height = unit(1, "npc"),         default.units = "npc", just = "centre",         gp = gpar(), clip = "inherit",         xscale = c(0, 1), yscale = c(0, 1),         angle = 0,         layout = NULL,         layout.pos.row = NULL, layout.pos.col = NULL,         name = NULL)grid.layout(nrow = 1, ncol = 1,        widths = unit(rep_len(1, ncol), "null"),        heights = unit(rep_len(1, nrow), "null"),        default.units = "null", respect = FALSE,        just="centre")

參數解釋:

name 指定viewport的名字,用於搜索和定位

x,y 為起點坐標,默認是矩形視窗中心坐標,為0 - 1的數字,表示佔newpage的比例

width, height 為矩形視窗的長寬,同樣是佔newpage的比例

angle 表示角度,從-360到360,正數表示逆時針旋轉,負數表示順時針旋轉

just 表示指定視窗起點位置,默認「centre」, 還可以設置左下角c(「left」, 「buttom」), 右上角c(「right」, 「top」) 等

layout grid.layout 對象,用於將當前的viewport拆分為子區域

layout.pos.row 創建的viewport在父節點layout的行位置

layout.pos.col 創建的viewport在父節點的layout列位置

nrow 表示將該區域拆分為幾行

ncol 表示將該區域拆分為幾列

widths 表示每個子區域的寬度,向量長度等於ncol

heights 表示每個子區域的高度,向量長度等於nrow

gp = gpar() 表示傳遞其它參數,如: col/fill顏色,lty線型, lwd線寬, fontsize文本尺寸, fontfamily字體, fontface字型等,
可以通過?gpar查詢

library(ggplot2)library(grid)grid.newpage()  # 創建一個空白畫布vp1 <- viewport(x = 0.5, y = 0.5, width = 0.5, height = 0.25, angle = 45)  # 設定視窗大小grid.show.viewport(vp1)  # 查看在畫布中的的視窗,自動上色,方便觀察

library(ggplot2)library(grid)library(showtext)YaHei <- windowsFont("微軟雅黑")font_add("YaHei", regular = "msyh.ttc", bold = "msyhbd.ttc")  # 右鍵字體,然後點擊屬性,regular指定常規, bold表示指定粗體字體 showtext_auto()#### 父viewportgrid.newpage()  #新建一個pagevp1 <- viewport(x = 0, y = 0.2, w = 0.9, h = 0.8, just = c("left", "bottom"))  #新建一個viewport,起點為左下角,pushViewport(vp1)  # 推出vp1grid.rect(gp = gpar(col = "red"))  # 新建一個矩形,gp=gpar()表示設置圖形參數grid.text("我在vp1_1", x = 0.8, y = 0.2, gp = gpar(col = "red", fontfamily = "YaHei", fontsize = 15))  # 新建一個文本,輸出到vp1vp2 <- viewport(x = 0, y = 0.2, w = 0.9, h = 0.8, just = c("left", "bottom"))  # 新建一個viewport,起點為左下角,pushViewport(name = vp2)  # 將工作區域設置到vp2grid.rect(x = 0.1, y = 0.2, width = 0.9, height = 0.7, just = c("left", "bottom"), gp = gpar(col = "blue", lty = "dashed"))  # 新建一個矩形,gp=gpar()表示設置圖形參數 grid.text("我在vp2_1", x = 0.8, y = 0.3, gp = gpar(col = "blue", fontfamily = "YaHei", fontsize = 15))  # 新建一個文本,輸出到vp2vp3 <- viewport(x = 0.1, y = 0.2, width = 0.9, height = 0.7, just = c("left", "bottom"))pushViewport(vp3)grid.rect(x = 0.1, y = 0.2, width = 0.7, height = 0.7, just = c("left", "bottom"), gp = gpar(col = "orange", lty = "twodash", lwd = 2))  # 新建一個矩形,gp=gpar()表示設置圖形參數 grid.text("我在vp3_1", x = 0.6, y = 0.4, gp = gpar(col = "orange", fontfamily = "YaHei", fontsize = 15))  # 新建一個文本,輸出到vp2

 layout參數

library(ggplot2)library(grid)grid.newpage()g1 <- grid.layout(nrow = 3, ncol = 2, widths = c(2, 3), heights = c(2, 1, 3))  # 設置分割的寬度和長度比例grid.show.layout(l = g1)

綜合例子

library(ggplot2)library(grid)library(showtext)YaHei <- windowsFont("微軟雅黑")font_add("YaHei", regular = "msyh.ttc", bold = "msyhbd.ttc")  # 右鍵字體,然後點擊屬性,regular指定常規, bold表示指定粗體字體 showtext_auto()plot.iris <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point() + facet_grid(cols = vars(Species))  # 按Species列分面plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) + geom_point(size = 2.5) +       labs(title = "dot plot")plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar() + theme(axis.text.x = element_text(angle = 70,    vjust = 0.5)) + labs(title = "bar plot")grid.newpage()  # 新建畫布layout_1 <- grid.layout(nrow = 3, ncol = 2, widths = c(1, 1), heights = c(1,    4, 5))  # 分成上下2*3共6個版塊,最上面版塊顯示標題pushViewport(viewport(layout = layout_1))  # 推出分成6個版塊的視窗print(plot.iris, vp = viewport(layout.pos.row = 2, layout.pos.col = c(1, 2)))  # 在中間一行子視窗中畫plot.irisprint(plot.mpg, vp = viewport(layout.pos.row = 3, layout.pos.col = 1))  # 在左下角子視窗中畫plot.mpgprint(plot.diamonds, vp = viewport(layout.pos.row = 3, layout.pos.col = 2))  #在右下角子視窗中畫plot.diamondsgrid.text("我是畫布名稱", x = 0.5, y = 0.95, gp = gpar(col = "orange", fontfamily = "YaHei", fontsize = 15))  # 增加畫布標題

3.1 子母圖

字母圖,主要是形成局部放大的效果,既可以從整體上對比,又兼顧特別小的數據組,或特別密的數據點可以查看,而沒有必要單獨做2張圖

library(ggplot2)library(grid)

3.2 grid 拼接蝴蝶圖

library(ggplot2)library(grid)library(dplyr)library(showtext)library(Cairo)YaHei <-  windowsFont("微軟雅黑")font_add("YaHei",regular = "msyh.ttc", bold = "msyhbd.ttc") # 右鍵字體,然後點擊屬性,regular指定常規, bold表示指定粗體字體 CairoPNG(file = "E:/R_input&output/images_output/蝴蝶圖_exercing.png", width = 1200, height = 700)showtext_begin()#生成圖形所需數據集:mydata<-data.frame(id=1:14,A=c(5.0,14.7,2.5,8.5,5.1,6.9,7.7,6.8,4.4,4.9,5.3,1.0,0.9,7.8),B=c(31.3,24.7,17.8,17.2,15.3,14.3,13.9,13.9,12.4,10.0,6.5,4.2,2.5,0.9),Label=c("Website","Customer & Employee Referral","Webinar","Facebook/Twitter/Other Social","Marketting & Advertising","Paid Serch","Other","Sales generated","Tradeshows","Parter","Linkedin","Events","Lead list","Emial Campaign"))p1<-ggplot(mydata) + # 繪製右側的柱形圖  geom_hline(yintercept=mean(mydata$A),linetype=2,size=.25,colour="grey")+  geom_bar(aes(x=id,y=A),stat="identity",fill="#E2BB1E",colour=NA)+  ylim(-5.5,16)+   scale_x_reverse()+   geom_text(aes(x=id,y=-4,label=Label),vjust=.5)+  geom_text(aes(x=id,y=A+.75,label=paste0(A,"%")),size=4.5,family="YaHei",fontface="bold")+  coord_flip()+  theme_void()p1

p2<-ggplot(mydata)+ # 繪製左側柱形圖, 左側圖沒有橫坐標刻度標籤  geom_hline(yintercept=-mean(mydata$B),linetype=2,size=.25,colour="grey")+  geom_bar(aes(x=id,y=-B),stat="identity",fill="#C44E4C",colour=NA)+ # y=-B,繪製的圖形在另一側  ylim(-40,0)+  scale_x_reverse()+ #   geom_text(aes(x=id,y=-B-1.75,label=paste0(B,"%")),size=4.5,family="YaHei",fontface="bold")+  coord_flip()+  theme_void()p2

# 圖形拼接grid.newpage() # 新建畫布layout_1 <- grid.layout(nrow = 2, ncol = 2, widths = c(2, 3), heights = c(1, 9)) # 分成2*2共4個版塊pushViewport(viewport(layout = layout_1)) # 推出分為4個版塊的視窗print(p1, vp = viewport(layout.pos.row = 2, layout.pos.col = 2)) # 將p1輸出到右下角print(p2, vp = viewport(layout.pos.row = 2, layout.pos.col = 1)) # 將p2輸出到左下角# 添加主標題和分標題grid.text(label="我是主標題",x = 0.5,y = 0.97,gp=gpar(col="cyan",fontsize=15,fontfamily="YaHei",draw=TRUE,just = "centre"))grid.text(label="我是左標題", x = 0.15,y =0.94,gp=gpar(col="blue",fontsize=10,fontfamily="YaHei",draw=TRUE,just = c("left", "top")))grid.text(label="我是右標題",x = 0.85,y =0.94,gp=gpar(col="blue",fontsize=10,fontfamily="YaHei",draw=TRUE,just = c("right", "top")))

showtext_end()dev.off()

## png ##   2

蝴蝶圖

4 gridExtra包

主要函數:

arrangeGrob()

grid.arrange()

marrangeGrob()

語法:

arrangeGrob(..., grobs = list(...), layout_matrix, vp = NULL,  name = "arrange", as.table = TRUE, respect = FALSE, clip = "off",  nrow = NULL, ncol = NULL, widths = NULL, heights = NULL, top = NULL,  bottom = NULL, left = NULL, right = NULL, padding = unit(0.5, "line"))grid.arrange(..., newpage = TRUE)marrangeGrob(grobs, ..., ncol, nrow, layout_matrix = matrix(seq_len(nrow *  ncol), nrow = nrow, ncol = ncol), top = quote(paste("page", g, "of",  npages)))

參數解釋:

library(ggplot2)library(gridExtra)library(showtext)YaHei <-  windowsFont("微軟雅黑")font_add("YaHei",regular = "msyh.ttc", bold = "msyhbd.ttc") # 右鍵字體,然後點擊屬性,regular指定常規, bold表示指定粗體字體 showtext.auto()empty <- ggplot() + geom_point(aes(1, 1), colour = "white") +   theme(axis.ticks = element_blank(),        panel.background = element_blank(),        axis.line = element_blank(),        axis.text.x = element_blank(), axis.text.y = element_blank(),        axis.title.x = element_blank(), axis.title.y = element_blank())scatter <- ggplot() + geom_point(aes(mtcars$mpg, mtcars$qsec)) # 繪製主圖散點圖hist_top <- ggplot() + geom_histogram(aes(mtcars$mpg)) # 繪製上方頻率分布直方圖hist_right <- ggplot() + geom_histogram(aes(mtcars$qsec)) + coord_flip() # 繪製右側頻率分布直方圖# 最終組合,由4個圖拼圖而成,只有右上角的圖已經將標註移除了grid.arrange(hist_top, empty, scatter, hist_right, # 按從左到右,從上到下順序排列4個圖ncol = 2, nrow = 2, widths = c(4, 1), heights = c(1, 4)) # 4個版塊的長寬比例# 其實這種組合圖已經有相應的R包了,ggExtra# df <- data.frame(x = mtcars$mpg, y = mtcars$qsec)# p <- ggplot(df, aes(x, y)) + geom_point() + theme_classic()# ggExtra::ggMarginal(p, type = "histogram")

把繪圖對象添加到列表總,並把該列表傳遞給grid.arrange()函數中的grobs參數

library(ggplot2)library(gridExtra)library(lattice)  # 類似ggplot,但是語法更加複雜library(showtext)YaHei <- windowsFont("微軟雅黑")font_add("YaHei", regular = "msyh.ttc", bold = "msyhbd.ttc")  # 右鍵字體,然後點擊屬性,regular指定常規, bold表示指定粗體字體 showtext.auto()gs <- list(NULL)gs[[1]] <- qplot(1, 1)gs[[2]] <- xyplot(1 ~ 1)  # lattice包grid.arrange(grobs = gs, ncol = 2)

 子母圖
grid包可以畫字母圖安裝gridExtra包後,ggplot2中多了一個ggplotGrob()函數,可以創建grob對象參數:

library(ggplot2)library(gridExtra)g <- ggplotGrob(qplot(1, 1) +                               theme(plot.background = element_rect(colour = "black")))qplot(1:10, 1:10) +    annotation_custom(      # 通過添加注釋的方式,向圖形內部添加一個圖形    grob = g,  # 插入圖形對象,即添加內容    xmin = 1, xmax = 5, ymin = 5, ymax = 10 # 添加位置4個坐標  )

轉載自公眾號:EasyCharts   

公眾號後臺回復關鍵字即可學習

回復 爬蟲            爬蟲三大案例實戰  
回復 Python       1小時破冰入門

回復 數據挖掘     R語言入門及數據挖掘
回復 人工智慧     三個月入門人工智慧
回復 數據分析師  數據分析師成長之路 
回復 機器學習      機器學習的商業應用
回復 數據科學      數據科學實戰
回復 常用算法      常用數據挖掘算法

相關焦點

  • 電影字幕拼接圖片
    相信大家都在朋友圈、微博、論壇等地方看過這種有趣或有哲理的電影字幕拼接圖片。
  • 公眾號圖片如何排版?最全指南來啦!
    圖片是公眾號文章中必不可少的一部分,在排版的時候,圖片排版是不是美觀整齊,也直接影響著整個排版效果和帶給別人的感覺,那麼圖片該怎麼進行排版呢?下面就為大家帶來公眾號圖片排版最全指南,一起看下吧。1、單圖排版單張圖片進行排版的話,可以直接套用編輯器提供的樣式模板,也可以對圖片進行簡單的效果設置。選中圖片,點擊圓形、正方形,能夠改變圖片的形狀,點擊圖片邊框陰影,可以給圖片添加邊框和陰影效果,還能改變圖片的弧度。2、多圖排版雙圖排版:可以根據所要表達的主題,排版成兩圖對比的樣式,或者一大一小,套用樣式模板就可以了。
  • 截取的圖片如何拼接成長圖?
    現在應用比較廣泛的肯定非長圖片莫屬了,所以製作長圖片的技術也已經比較成熟了,不僅僅是電腦軟體,現在很多手機APP都能支持多張圖片合成長圖。有時候我們截圖的時候,我們也會有將其拼接成長圖的想法,那麼大家知道快速將截圖拼接成長圖的方法嗎?
  • 簡單的視頻與圖片拼接方法
    經過簡單編輯你也可以拍出炫酷又神奇的視頻了1、下載一個簡拼app並打開,點擊底部中間的按zd鈕後選擇視頻,進入視頻拼接模板2、選擇回好視頻拼接模板後,進入視頻選擇界面,點擊選擇要拼接的視頻4、然後可以進行調整,替換圖片;還可以添加背景音樂,進行視頻預覽。
  • Python乾貨 | 遙感影像拼接
    1.準備工作相較於上一篇推送,我們這次為了實現遙感影像的鑲嵌拼接,我們使用到了兩個庫, rasterio和gdal。import rasterio as rioimport gdal先介紹一下我們實現兩組遙感影像拼接的思路,首先選取兩景相鄰的影像,分別得到他們的空間範圍,再得到兩景組合到一起之後的空間範圍,使用gdal新建一個tif文件(數據中轉用),分別得到原來兩景影像在新建的tif文件中的起始位置,將對應的數據寫入新的tif文件中,即實現鑲嵌拼接
  • 【R語言】遙感影像Theil Sen趨勢分析MK檢驗
    01按以下形式將影像預處理好,起名字可以根據自己的需要,但是你要是不了解R語言,就按我的格式改名字吧
  • 「語言藝術小課堂」正音訓練——聲母r
    聲母 r01理論內容聲母r發音要領:發音時,舌尖上翹,靠近硬顎前部,留出窄縫,嗓子用力發聲,氣流從窄縫中擠出,摩擦成音,聲帶顫動。r r r02單音節練習容 繞 肉 若 熱 然 入 惹03雙音節練習揉揉 融入 容忍 軟弱
  • R語言製作相關圖
    R語言製作相關圖這篇文章是一個英文教程的搬運和整理,前幾天在論文中看到了非常漂亮的相關圖(correlogram),可以通過這個畫出來。相關圖可以非常好的表現數據表中的各個變量之間的相關關係。在這裡使用了R語言中的corrplot包。安裝corrplot包要想在R語言中繪製相關圖,需要先安裝R包。在這裡使用的是「corrplot」包,具體的R語言安裝介紹請看前面的推文R語言安裝部署基礎。
  • Numpy 腦洞玩法之圖片切割拼接
    詭途https://blog.csdn.net/qq_35866846/article/details/105389738視頻資料:https://tv.sohu.com/v/dXMvMzM1OTQyMDI2LzExMzQxMDY1MS5zaHRtbA==.html視頻的內容介紹:一張照片,橫著切成若干條,並且沒有打亂,隨後隔條分成了兩份,然後把這兩份各自拼接在一起
  • C語言,誰都能看得懂的歸併排序
    本來想錄製幾張動圖放上來,但是因為圖片較大,傳不上來,公眾號對動態圖片有限制,喜歡的同學可以點擊我上面的連結,自己去嘗試一下。我畫了一個圖片,用來表示歸併排序的運算過程排序的過程先把需要排序的數據分成兩份。
  • 小學數學中「怪異」組合圖形的解構方法
    「怪異」組合圖形的重要性小學數學所涵蓋的幾何圖形大部分比較簡單,有一小部分則比較複雜。複雜的圖形都是多種單一圖形的組合,這些圖形有的看上去很怪異,很令人費解,以小學生的識圖能力來解構它們,確實是困難重重。
  • 如何製作拼接的長圖!5款好用的長圖拼接app推薦
    5、長拼接功能:讓你在編輯長微博和遊記的過程中更加得心應手。6、歷史記憶功能:記住你最常用的幾款功能,使創作更加便捷,讓你更好地享受創作過程7、明信片功能:讓遠行的心極具詩意。二、Cutie相機功能介紹實時濾鏡:自拍全手工調製的濾鏡,讓你的圖片格調Max!創作壁紙:可以做壁紙的!你說,除了咱家,誰家的相機還帶做壁紙的?emoji:深井冰的Emoji模彷秀,還可以做成動圖發到微信圖片融合:深深太平洋裡,浩瀚繁星。通過雙色漸變讓顏色富有層次,添加漏光和自定義漸暈,獲得復古感覺!
  • 藝術家將好萊塢明星和世界名畫組合拼接在了一起
    來自義大利的藝術家Luigi Tarini創作了一組令人驚訝的作品,他將好萊塢明星和世界名畫組合拼接在了一起,這仿佛是時間空間藝術各種維度的交錯。   來自義大利的藝術家Luigi Tarini創作了一組令人驚訝的作品,他將好萊塢明星和世界名畫組合拼接在了一起,這仿佛是時間空間藝術各種維度的交錯。
  • 陰陽師:想練全R卡帳號是否可行?看一下R卡中的那些戰神你就知道
    ssr/sp卡式神,但是也有一些例外,比如最近一位玩家就立志在新區開一個全r卡的帳號,那麼僅靠r卡究竟能不能滿足日常遊戲內容呢?陰陽師中現在還有哪些r卡戰神呢?接下來咱們就一起看看吧。玩家想在新區培養全R卡帳號是否可行?
  • 這樣都學不會長圖拼接?
    那……那本菜只好跟你分享一下本菜積累的拼接大招了!!!頁面上還有很多不同的板塊,有很多用戶投稿的長圖拼接素材。在危急關頭deadline面前,還可以偶爾偷個懶,直接盜用適合的圖片呀!我真聰明!app,這款app的拼接是最好用的,而且還是免費的免費的免費的!!!
  • R語言數據實戰 | R中的數據類型
    第一章介紹了R語言的概貌,下面將以一個簡單的電影票房實際數據為例,介紹在實際數據處理中R語言中的基本類型、基本操作。在電影的宣傳期,往往能看到其主演、導演頻頻現身各大頭條,吸引看客眼球,最後的落腳點往往是「祝***電影票房大賣」。
  • R語言 | 回歸分析(四)
    R: The R Project for Statistical Computinghttps://www.r-project.org/RStudio:https://rstudio.com/今天是我們最後一期R語言入門系列。從去年11月份到今天,中間也因學業停更了很久,好在堅持了下來。
  • 三星液晶拼接屏廠家有哪些 液晶拼接屏特點介紹
    液晶拼接屏作用非常大,既能單獨作為 顯示器 又可以拼接成超大屏幕使用,根據不同需求,做出相應的改變,屏幕可大可小,非常方便,滿足用戶多樣化需求,並且液晶拼接亮度高、採用超窄邊設計,亮度均勻、影像穩定不閃爍、使用壽命長,深得人心。
  • 美翻朋友圈:用Python生成蒙太奇馬賽克圖片
    效果展示說這麼多都是虛的,下面我們看看實現的效果,到底什麼是蒙太奇馬賽克圖片,這裡用小松菜奈的照片作為測試:原圖效果圖對比最左邊的是蒙太奇圖縮小的效果,第二個則是正常大小顯示的效果,第三張是原圖,第四張是截取的某個區域的細節。從圖四可以很容易看出,我們的蒙太奇圖片是使用許多不同的圖片拼接而成的。
  • Polarr 想用免費專業圖片處理工具,在數據的幫助下幫助專家和小白...
    在整個圖片處理應用市場中,每年又有 200 萬新人加入。但從數據中就能發現一定問題:對圖片處理工具的需求人數巨大,但對用戶而言,他們產出的照片質量和價值越高,他們要在照片修改和管理的成本就越高。另一方面,使用 Instagram 這類自動化工具過多,就不免導致最終成品趨於同質化、雷同化,相比之下原片的平均質量也會隨習慣增進而降低。