visio 科学图形包_R可视乎|混合多个图形
前言
在同一頁(yè)面上混合多個(gè)圖形是一種常見(jiàn)的做法。它可以在同一數(shù)字上 總結(jié)大量信息,例如,它被廣泛用于科學(xué)出版物。
par()
一頁(yè)多圖用mfrow參數(shù)或mfcol參數(shù)規(guī)定,這也是我?guī)啄昵敖?jīng)常用的一種方法。
x <- rnorm(50) y <- rnorm(50,2,2)隨便模擬產(chǎn)生數(shù)據(jù),并對(duì)數(shù)據(jù)繪制一些簡(jiǎn)單的圖,用該函數(shù)將一頁(yè)中對(duì)他們進(jìn)行全部展示。
par(mfrow=c(2,2)) plot(x, y, xlab = "", ylab = "") hist(x,main='') qqnorm(x,main = '');qqline(x) barplot(x, axes = FALSE, space = 0,col='white')layout()
layout(mat, widths = rep.int(1, ncol(mat)),heights = rep.int(1, nrow(mat)), respect = FALSE)- mat 參數(shù)為一個(gè)矩陣,提供了作圖的順序以及圖形版面的安排。0代表空缺,不繪制圖形,大于0 的數(shù)代表繪圖順序,相同數(shù)字代表占位符。
- widths 和 heights 參數(shù)提供了各個(gè)矩形作圖區(qū)域的長(zhǎng)和寬的比例。
- respect 參數(shù)控制著各圖形內(nèi)的橫縱軸刻度長(zhǎng)度的比例尺是否一樣。
- n 參數(shù)為欲顯示的區(qū)域的序號(hào)。
生成2行2列的版面,并設(shè)置寬度和高度。par()中oma參數(shù)指四個(gè)外邊空的行數(shù)
par(oma = c(2,2,2,2)) nf <- layout(matrix(c(1,2,1,3),2,2),widths = c(1, 3), heights = c(1, 2)) layout.show(nf)再將各個(gè)圖進(jìn)行填充
plot(x, y, xlim = xrange, ylim = yrange, xlab = "", ylab = "") barplot(xhist$counts, axes = FALSE, ylim = c(0, top), space = 0) barplot(yhist$counts, axes = FALSE, xlim = c(0, top), space = 0, horiz = TRUE)前面兩種方法,說(shuō)實(shí)話可以實(shí)現(xiàn),但是比較費(fèi)勁。那么下面看看gridExtra包。
gridExtra包—grid.arrange()
gridExtra包讓混合多個(gè)圖片變得輕而易舉。它提供了grid.arrange() 函數(shù)來(lái)完成 這個(gè)任務(wù)。它的nrow參數(shù)允許指定如何安排布局。
對(duì)于更復(fù)雜的布局,arrangeGrob() 函數(shù)允許做一些嵌套。這里有 4 個(gè) 例子來(lái)說(shuō)明 gridExtra 是如何工作的:
library(ggplot2) library(gridExtra)這里我們用ggplot繪圖,并存在變量名稱(g1,g2,g3)中,然后用grid.arrange()將各個(gè)變量名稱展現(xiàn)出來(lái)。
# Make 3 simple graphics: g1 <- ggplot(mtcars, aes(x=qsec)) + geom_density(fill="slateblue") g2 <- ggplot(mtcars, aes(x=drat, y=qsec, color=cyl)) + geom_point(size=5) + theme(legend.position="none") g3 <- ggplot(mtcars, aes(x=factor(cyl), y=qsec, fill=cyl)) + geom_boxplot() + theme(legend.position="none") g4 <- ggplot(mtcars , aes(x=factor(cyl), fill=factor(cyl))) + geom_bar() # Plots grid.arrange(g1, g2, g3, nrow = 3)當(dāng)然可以使用參數(shù)arrangeGrob(),下面繪制了兩行,第一行是g2,第二行是g3,g4.
grid.arrange(g2, arrangeGrob(g3, g4, ncol=2), nrow = 2)下面繪制了兩行,第一行是g2,第二行是g3,g4,g1.
grid.arrange(g2, arrangeGrob(g3, g4, g1,ncol=3), nrow = 2)總結(jié)
以上是生活随笔為你收集整理的visio 科学图形包_R可视乎|混合多个图形的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js浮点数运算不精确 如何解决_解决 浏
- 下一篇: 怎么看python环境变量配置是否好了验