R繪圖之散點圖:10散點圖矩陣

2021-02-08 鴻生信

散點圖矩陣可以顯示矩陣數據兩兩之間的散點圖。

1. 最樸素的繪製方法,是用pairs.

#構建數據

subi=iris[,1:4]

#默認散點圖矩陣

pairs(subi)

散點圖矩陣可以分為上三角區塊, 對角線區塊, 下三角區塊,我們可以自定義每個區塊的函數,而且達到修改pairs繪圖效果的目的。

比如用以下方式:

panel.cor<-function(x,y,digits=2,prefix="r=",cex.cor,...){

  usr <-par('usr')

  on.exit(par(usr))

  par(usr=c(0,1,0,1))

  r<-cor(x,y,use="complete.obs")

 txt<-format(c(r,0.123456789),digits=digits)[1]

  txt<-paste(prefix,txt,sep="")

  if(missing(cex.cor)) cex.cor<-0.8/strwidth(txt)

  #text(0.5,0.5,txt,cex=cex.cor*(1+r)/2)

  text(0.5,0.5,txt,cex=2)

}

panel.hist<-function(x,...){

  usr<-par('usr')

  on.exit(par(usr))

  par(usr=c(usr[1:2],0,1.5))

  h<-hist(x,plot=FALSE)

  breaks<-h$breaks

  nB<-length(breaks)

  y<-h$counts

  y<-y/max(y)

  rect(breaks[-nB],0,breaks[-1],y,col="skyblue",...)

}

panel.lm<-function(x,y,col=par("col"),bg=NA,pch=par("pch"),

                   cex=2,col.smooth="black",...){

  points(x,y,pch=pch,col=col,bg=bg,cex=cex)

  abline(stats::lm(y~x),col=col.smooth,...)

}

pairs(subi,upper.panel=panel.cor,

      diag.panel=panel.hist,

      lower.panel=panel.lm,

      pch=21,

      bg =c("#1B9E77","#D95F02","#7570B3")[unclass(iris$Species)])

2. car包的scatterplotMatrix繪製

library(car)

scatterplotMatrix(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,data=iris,

                  spread=FALSE,smooth=FALSE)

#優化一下

#顏色定義

library(RColorBrewer)

mycolor=brewer.pal(8,"Dark2")

col=as.vector(iris$Species)

col[col=='setosa']<-mycolor[1]

col[col=='versicolor']<-mycolor[2]

col[col=='virginica']<-mycolor[3]

scatterplotMatrix(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,data=iris,

 spread=FALSE,smooth=FALSE,groups=iris$Species,col=mycolor[1:3],pch=c(19,19,19))

3. 使用gclus包cpairs

library(gclus)

subiris=iris[,1:4]

mycorr=abs(cor(subiris))

mycolors <- dmat.color(mycorr)

myorder <- order.single(mycorr)

cpairs(subiris,myorder,panel.colors = mycolors,gap=.5,

       main="Variables Ordered and Coloredby Correlation")

 

4. 用GGally包的ggpairs

library(GGally)

ggpairs(iris, aes(color=Species))+

  theme_bw()


用於數據探索的話,這個很不錯。

下一講:三元圖

相關焦點

  • 基於Python圖表繪圖系統:matplotlib散點圖和氣泡圖,你了解嗎?
    慣例先來簡單介紹下什麼是散點圖:用兩組數據構成多個坐標點,考察坐標點的分布,判斷兩變量之間是否存在某種關聯或總結坐標點的分布模式。散點圖將序列顯示為一組點。值由點在圖表中的位置表示。類別由圖表中的不同標記表示。
  • python散點圖中如何添加擬合線並顯示擬合方程與R方?
    numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)# x:要擬合點的橫坐標# y:要擬合點的縱坐標# deg:自由度.例如:自由度為2,那麼擬合出來的曲線就是二次函數,自由度是3,擬合出來的曲線就是3次函數首先我們先來構造一下需要被擬合的散點
  • R繪圖之散點圖:13Wilkinson點圖和Cleveland點圖
    Wilkinson點圖Wilkinson點圖是有點像直方圖,在ggplot2包中用geom_dotplot
  • 【心電散點圖】三維Lorenz散點圖精解:阻滯篇
    2.1  二維心電散點圖特徵2.1.1  時間散點圖特徵      如圖4A所示,部分時段高、低分層,高層(N.N層)基本貫穿全程,低層(NN層)時斷時續;高、低層同步起伏,大致有倍數關係(N.N≈2NN),符合二度Ⅱ型房室傳導阻滯的特點。
  • R: 圈型熱圖、箱圖、散點圖
    ,如circos.boxplot組合箱圖,circos.points組合散點圖。)), cbind(matrix(rnorm(50*5, mean = -1), nr = 50), matrix(rnorm(50*5, mean = 1), nr = 50)) )rownames(mat1) = paste0("R", 1:100)colnames(mat1) = paste0("C", 1:10
  • 小圖也有大作為:散點圖在統計中的作用
    散點圖主要是度量兩變量關係強弱的最直觀的圖形,雖然三維圖形也在起著類似的作用,但就直觀性上仍然不能取代二維圖的效果。不過在探索多維變量間關係上提供了非常好的視角,另外比較常用的是偵察相對回歸面的異常值,尤其具有可視化的優勢。
  • Python數據可視化:用Seaborn繪製高端玩家版散點圖
    散點圖是用於研究兩個變量之間關係的經典的和基本的圖表。如果數據中有多個組,則可能需要以不同顏色可視化每個組。今天我們畫普通散點圖、邊際分布線性回歸散點圖、散點圖矩陣、帶線性回歸最佳擬合線的散點圖本文示例多是來自官方文檔,這裡我只是做一下整理,讓大家知道散點圖的不同玩法,不要再繪製老掉牙的普通玩家版散點圖了。
  • 組合圖之散點圖添加分界線
    之前我們只做過一份散點圖,為了便於分辨,我需要加上兩條分界線,在橫坐標上以80%為界,在縱坐標上以25%為界,以此來區分不同區間的數據,便於分類分析。首先,我們需要構建一個輔助數據,如下表。在格式裡面選中剛才添加的系列2,將其圖表類型更改為帶直線的散點圖,更改一下線條顏色和粗細,將橫坐標的最大值改為1。
  • 直方圖、密度圖、散點圖,python數據可視化方法,你要的都在這裡
    直方圖和密度圖直方圖直方圖(histogram)是一種可以對值頻率進行離散化顯示的柱狀圖。數據點被拆分到離散的、間隔均勻的面元中,繪製的是各面元中數據點的數量。因此,密度圖也被稱作KDE圖。='kde',style='k--')散布圖(或散點圖)散布圖(scatter plot)是觀察兩個一維數據序列之間的關係的有效手段。
  • Python繪圖筆記:繪製四色散點圖和誤差條形圖
    1.散點圖一figure1#導入繪製散點圖所需要的包import matplotlib.pyplot as pltfrom numpy.random import rand#生成繪圖所需的圖紙fig, ax = plt.subplots
  • Thinkcell圖文教程系列3:散點圖/走勢分析圖
    今天Thinkcell君要和大家分享的是散點圖/走勢分析圖的製作下面開始給大家演示,首先看數據:上表的數據為
  • 組合圖之散點圖繪製不等距刻度線
    前面我們製作的組合圖表,散點圖可是發揮了大作用。殊不知,它還有另一大功能,就是製作刻度線,而且是根據數值大小製作。我們知道,網格線和刻度標籤間隔都是一致的,而且,網格線默認在數據系列之下,我們通過散點圖配合誤差線,就可以擺脫這一限制,下面就動手製作一份。
  • 數據可視化|用散點圖進行數據分析
    散點圖的用途有很多,我認為它的核心價值,在於應用相關思維,發現變量之間的關係。散點圖就像一扇窗,打開它,並仔細觀察,能讓我們看見更多有價值的信息。比如說,假設表格中有 10000 個客戶年齡和消費金額的數據:我們可以計算每一個年齡對應的人均消費金額,比如說,所有 20 歲客戶的平均消費金額約為 1383.69 元,然後我們可以畫出一張散點圖:從圖中可以看出,客戶的年齡與人均消費金額有很強的相關性,其中應用了線性回歸算法
  • 教你讀懂流式散點圖和等高線圖
    了解了流式細胞術的原理及螢光素的選擇,要想讀懂流式細胞術測出來的各種信息,我們必須知道如何讀懂流式圖。即使你不需要自己做流式,讀懂流式圖也是閱讀文獻不可或缺的技能。流式圖的種類非常多,最常用的是流式直方圖和流式散點圖,還有流式等高線圖等。流式直方圖只能顯示一個通道的信息,而流式散點圖和等高線圖等則能同時顯示兩個通道的信息。
  • 輕鬆一刻:散點圖繪製出「新年好」毛筆大字
    快過年了,寫個純屬好玩的輕鬆貼,我們要用散點圖繪製出「新年好」3個毛筆大楷字,順帶練習幾個知識點和技巧。
  • Graphpad prism7作圖教程|單維度分組散點圖、二維度分組柱形圖
    .,2014)最後,以散點圖的形式表現工作記憶容量與移除速度之間的關係。基於以上,本期就來繼續介紹如何用Graphpad prism畫出單維度分組散點圖與二維度分組柱形圖~(圖源:Ecker et al.,2014)注:由於在以下教程中,數據是不完全引用,因此實際圖與所引用文獻圖片存在部分差異。
  • Graphpad prism7作圖教程 | 單維度分組散點圖、二維度分組柱形圖
    最後,以散點圖的形式表現工作記憶容量與移除速度之間的關係。 單維度分組散點圖適合於簡單分組的數據,即數據組僅由一個方案定義,在數據表中每一列定義一個數據組,在行向量上沒有分組;每組可以有多個相互間是獨立或非獨立的數據
  • 質量工具之矩陣圖
    矩陣在組織管理中有很多應用,比如風險評估矩陣、概率影響矩陣、道斯矩陣(SWOT分析)、職責分配矩陣RAM(RACI)、散點圖矩陣、相關性矩陣、優先級矩陣、波士頓矩陣等,使用這些矩陣可以更有效和高效進行戰略決策、質量管理、項目管理和持續改進等,矩陣圖則是質量管理人員常用的QC新七種工具之一。
  • 20行代碼玩轉象限圖!
    今天,我們就來講講一學就會的象限圖。上圖學名叫波士頓矩陣分析圖,大白話四象限圖。這種圖經常用於兩個維度的散點圖中,根據特定的分割線(均值,目標值,實際值等)將數據分為四類,使人一目了然。常用的場景為分析兩個維度的變化比如:比較商品的庫存天數和庫存周轉率,充值人數和每付費用戶平均收益,購物籃係數和購物籃數量等。
  • python學習筆記:同時畫多圖,折線圖,箱線圖,條形圖,柱狀圖等
    1.同時畫六張圖#從Matplotlib中導入了pyplot繪圖模塊from matplotlib.pyplot import *#設置相關的數值x=[1,2,3,4]y=[5,4,3,2]#創建一個圖紙(figure)figure()#使用subplot創建多個子圖,下面的subplot(2,3,1)表示創建一個包含2行3列圖表的圖紙,1表示第一張圖subplot