R語言 繪圖組合布局grid/layout

2021-02-19 數據驅動實踐

 獲取原始碼請至公眾號後臺回覆:一頁多圖

圖形組合布局

par(mfrow=c(2,2))

par(mfrow=c(2,2)),可以理解將繪圖區域分割為2x2的矩陣區域,另可參照《R語言實戰》3.5圖形的組合

##################par(mfrow=c(2,2))####################attach(iris)opar <- par(no.readonly = TRUE)# data(iris)# head(iris)# > head(iris)# Sepal.Length Sepal.Width Petal.Length Petal.Width Species# 1 5.1 3.5 1.4 0.2 setosa# 2 4.9 3.0 1.4 0.2 setosa# 3 4.7 3.2 1.3 0.2 setosa# 4 4.6 3.1 1.5 0.2 setosa# 5 5.0 3.6 1.4 0.2 setosa# 6 5.4 3.9 1.7 0.4 setosa
par(mfrow=c(2,2)) # 設置2x2的布局plot(Sepal.Length,Sepal.Width, main = "第一張圖")boxplot(Sepal.Length, horizontal = TRUE, main = "第二張圖") boxplot(Sepal.Width, main = "第三張圖") hist(Petal.Length, main = "第四張圖")
par(opar)detach(iris)

圖形組合布局

par(fig=c(x1, x2, y1, y2), new = TRUE)

par(fig=c(x1, x2, y1, y2), new = TRUE),取x1,x2,y1,y2四條線圈住的位置繪圖圖形,另可參照《R語言實戰》3.5圖形的組合

opar <- par(no.readonly = TRUE)
par(fig=c(0,0.8,0,0.8)) plot(iris$Sepal.Length,iris$Sepal.Width)
par(fig=c(0,0.8,0.65,1),new = TRUE) boxplot(iris$Sepal.Length, horizontal = TRUE, axes=FALSE)
par(fig=c(0.65,1,0,0.8),new = TRUE) boxplot(iris$Sepal.Width, axes=FALSE)
mtext("par(fig=c(x1, x2, y1, y2), new = TRUE)",side = 3, outer=TRUE, line=-3)par(opar)

圖形組合布局

grid.layout & vplayout

library(grid)grid.newpage() pushViewport(viewport(layout = grid.layout(2,2))) vplayout <- function(x,y){ viewport(layout.pos.row = x, layout.pos.col = y)}
print(p1, vp = vplayout(1,1)) print(p2, vp = vplayout(1,2)) print(p3, vp = vplayout(2,1:2))

示例

library(ggplot2)
base <- ggplot(mpg, aes(displ, hwy)) + geom_point()p1 <- base + geom_smooth() + labs(title="圖1")
base <- ggplot(mpg, aes(displ, hwy)) + geom_point()p2 <- base %+% subset(mpg, fl == "p") + labs(title="圖2")
p3 <- base + list(subset(mpg, fl == "p"), geom_smooth(), labs(title="圖3"))
library(grid)grid.newpage() pushViewport(viewport(layout = grid.layout(2,2))) vplayout <- function(x,y){ viewport(layout.pos.row = x, layout.pos.col = y)}
print(p1, vp = vplayout(1,1)) print(p2, vp = vplayout(1,2)) print(p3, vp = vplayout(2,1:2))

圖形組合布局

plot_grid {cowplot} 

install.packages("cowplot") #安裝cowplot包library(cowplot) # 加載?plot_grid  #幫助函數查看具體usage

示例

library(ggplot2)
df <- data.frame( x = 1:10, y1 = 1:10, y2 = (1:10)^2, y3 = (1:10)^3, y4 = (1:10)^4)
p1 <- ggplot(df, aes(x, y1)) + geom_point()p2 <- ggplot(df, aes(x, y2)) + geom_point()p3 <- ggplot(df, aes(x, y3)) + geom_point()p4 <- ggplot(df, aes(x, y4)) + geom_point()p5 <- ggplot(mpg, aes(as.factor(year), hwy)) + geom_boxplot() + facet_wrap(~class, scales = "free_y")plot_grid(p1, p2, p3, p4)

圖形組合布局

multiplot{Rmisc}

library(Rmisc)library(ggplot2)
df <- data.frame( x = 1:10, y1 = 1:10, y2 = (1:10)^2, y3 = (1:10)^3, y4 = (1:10)^4)
p1 <- ggplot(df, aes(x, y1)) + geom_point()p2 <- ggplot(df, aes(x, y2)) + geom_point()p3 <- ggplot(df, aes(x, y3)) + geom_point()p4 <- ggplot(df, aes(x, y4)) + geom_point()p5 <- ggplot(mpg, aes(as.factor(year), hwy)) + geom_boxplot() + facet_wrap(~class, scales = "free_y")
multiplot(p1, p2, p3, p5, cols=2)

 獲取原始碼請至公眾號後臺回覆:一頁多圖

R 語言 邏輯運算:TRUE/FALSE

R語言入門到可視化精選19題

R語言 高階可視化繪圖系統:ggplot2入門

R語言,入門首看、必看基礎概述

R語言數據管理與dplyr、tidyr

快速掌握R語言中的apply函數族 | 精選分享

R語言 分組計算,不止group_by

用R語言讓你的可視化圖表動起來!動起來!!附原始碼

R語言 相關係數混合可視化矩陣實現

《R數據科學》是一本專門講解tidyverse相關包的書籍,主要涉及dplyr、tidyr、ggplot2、purrr等,非常值得學習,基本上此一本書可以解答數據處理的大部分問題

相關焦點

  • R語言從入門到精通:Day17 (ggplot2繪圖)
    經過這麼長時間對R語言的學習,相信對於R中的四種獨立圖形系統,你肯定也不會感到驚奇。除了基礎圖形,grid、lattice和ggplot2軟體包也提供了圖形系統,它們克服了R基礎圖形系統的低效性,大大擴展了R的繪圖能力。四種常見的作圖系統中,ggplot2包基於一種全面的圖形「語法」,提供了一種全新的圖形創建方法。這個包極大地擴展了R繪圖的範疇,提高了圖形的質量。
  • react-grid-layout核心功能實現
    前言react-grid-layout是基於react的網格布局系統,支持視圖的拖拽和縮放,操作十分靈活。工作中某個項目模塊實現用到了react-grid-layout,就去看了一下核心功能的實現。  }}網格布局接下來進入react-grid-layout最為關鍵的部分,網格布局生成和計算。
  • R語言繪圖—甘特圖
    收錄於話題 #R語言繪圖[該介紹來自百度百科]二、R語言甘特圖繪製2.1函數介紹在R語言中繪製甘特圖的函數為vistime包中的vistime函數,函數的用法如下:vistime( data, col.event = "event", col.start = "start", col.end = "end", col.group = "
  • HTML、CSS從零開始 | GRID布局
    GRID布局它將網頁劃分成一個個網格,可以任意組合不同的網格,做出各種各樣的布局Grid 布局與 Flex 布局有一定的相似性,都可以指定容器內部多個項目的位置。但是,它們也存在重大區別。Flex 布局是軸線布局,只能指定"項目"針對軸線的位置,可以看作是一維布局。Grid 布局則是將容器劃分成"行"和"列",產生單元格,然後指定"項目所在"的單元格,可以看作是二維布局。
  • 使用R語言繪製其他圖形之相關係數圖
    之前ggplot2系列中我們已經學會了常用的統計圖形,如條形圖、直方圖、散點圖、折線圖、餅圖和地圖等,今天再和大家談談R語言中常用的其他圖形,如相關係數圖
  • Android 約束布局(ConstraintLayout)詳解
    作者:Airsaid連結:https://blog.csdn.net/Airsaid/article/details/79052011前言ConstraintLayout 是一個 ViewGroup,它的出現是為了解決複雜布局時,布局嵌套(布局內的布局)過多的問題(嵌套布局會增加繪製界面所需的時間)。
  • Android RelativeLayout(相對布局)
    1.parent(相對於父布局的一些屬性)layout_alignParentTop
  • 帶你了解 Android 約束布局 ConstraintLayout
    ConstraintLayout是Android新推出的一個布局,其性能更好,連官方的hello world都用ConstraintLayout來寫了。所以極力推薦使用ConstraintLayout來編寫布局。本文主要介紹一下如何使用代碼來編寫ConstraintLayout布局。好了,開始我們的徵程。
  • MATLAB二維、三維、四維繪圖
    :極坐標2t = 0:pi/50:2*pi;3r = sin(t).*cos(t);4polar(t,r,'-*')統計圖 1%二維繪圖示例代碼:統計圖 2figure; 3subplot(221) 4x = -2.9:0.2:2.9;    %條形圖 5bar(x,exp(-x.^2)) 6subplot(222) 7x = 0:0.1:4;         %針狀圖 8y
  • R語言-扇形圖繪圖小能手
    咳咳,小編今天要給大家介紹的是用如何使用R語言來繪製餅圖,話不多說,上乾貨!作圖數據格式仍然長這樣..., fill = phylum)) + geom_bar(stat = 'identity', width = 1) +coord_polar(theta = 'y') +scale_fill_manual(values = rev(c('#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462'))) +theme(panel.grid
  • R-plot3D包: 三維圖表繪製手冊(2)
    相當於「b1」和grid = "grey"的組合。bty="bl" 表示僅僅黑色背景, 相當於: col.panel = 「black」, col.axis = 「grey」, lwd.grid = 2和col.grid = 「white」。bty="bl2"表示僅僅黑色背景和grid線。bty="g"表示僅僅灰色背景和白色grid線。
  • Python、R和Matlab地圖可視化(四)
    1 R
  • 技術貼 | R語言:ggplot繪圖的Y軸截斷和拼接
    導讀記錄一個產生Y軸截斷ggplot繪圖的方法。## ggpubr# 1 普通安裝install.packages("ggpubr")# 2 source安裝packageurl = 'https://cran.r-project.org/src/contrib/ggpubr_0.4.0.tar.gz'install.packages(packageurl, repos = NULL, type
  • matlab繪圖方法
    *cos(pi*x);plot(x,y2);hold off 1.3 設置曲線樣式   MATLAB提供了一些繪圖選項,用於確定所繪曲線的線型、顏色和數據點標記符號,它們可以組合使用。  例如,「b-.」表示藍色點劃線,「y:d」表示黃色虛線並用菱形符標記數據點。
  • 視頻教程:R語言recharts包繪製交互式圖形
    請將本文的代碼,用Rstudio保存為recharts.r的文件中。手動設置工作目錄:Session - Set Work Directory - To Source File Location# 1.
  • R語言實現UMAP降維模型
    接下來我麼看下在R語言是如何實現UMAP的算法的。首先就是安裝umap包,具體的就是install.packages(「umap」)。gamma:布局最優的學習率negative_sample_rate:每一個陽性樣本導致的陰性率。其值越大導致高的優化也就是過擬合,預測準確度下降。默認是5.
  • 小世界網絡模型簡介及R模擬
    具體而言,從排成一圈的Nv個節點的集合開始,將每個節點與其一側的r個鄰居進行連接;之後以概率p移除每條邊的一個端點,與另一個等概率選取的新節點相連,並避免生成自環與多重邊。   下圖展示了小型世界網絡的特徵,顯示了網絡平均路徑長度(ℓ)和聚類係數(C)隨重連概率p改變的關係。當概率p低時,大多數邊仍然是原始的局部連接,它們連接的是晶格附近的節點,因此傳遞性仍然很高。
  • Matlab繪圖秘籍匯總,除了不能「生孩子」,其它什麼都會
    %設置標記點的邊緣顏色為黑色         'MarkerFaceColor', 'r', ...  %設置標記點的填充顏色為紅色         'MarkerSize', 10)    %設置標記點的尺寸為10