簡體   English   中英

2個矩陣R的並排餅圖

[英]Side-by-side pie charts of 2 matrices R

假設你有2個矩陣m1m2 ,每個矩陣都有相同數量的列。

m1 = matrix(0, 10, 5, dimnames = list(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"), c(1, 2, 3, 4, 5)))
m1[1,] = c(0,0,0,0,1)
m1[2,] = c(0,0,0,1,1)
m1[3,] = c(0,0,1,1,1)
m1[4,] = c(0,0,1,1,0)
m1[5,] = c(1,0,0,0,0)
m1[6,] = c(1,1,1,0,0)
m1[7,] = c(0,1,1,0,0)
m1[8,] = c(0,1,1,0,0)
m1[9,] = c(0,1,1,1,0)
m1[10,] = c(1,1,1,0,1)

m2 = matrix(0, 10, 5, dimnames = list(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"), c(1, 2, 3, 4, 5)))
m2[1,] = c(0,0,0,0,1)
m2[2,] = c(0,0,0,1,1)
m2[3,] = c(0,0,1,1,1)
m2[4,] = c(0,0,1,1,0)
m2[5,] = c(1,0,0,0,0)
m2[6,] = c(1,1,1,0,0)
m2[7,] = c(0,1,1,0,0)
m2[8,] = c(0,1,1,0,0)
m2[9,] = c(0,1,1,1,0)
m2[10,] = c(1,1,1,0,1)

我想看到的是這兩個矩陣的餅圖比較。

我可以想到的一種方法是為每一列添加每一行,然后使用它們來獲取餅圖的分數。

sumcols <-function(x){
    for (i in 1:numcols(x)){
        sum <- sum(x[,i])
        sums.append(sum) #python here ...
    }
    return(sums)
}

所以現在,我可以傳遞任何矩陣,得到一個總和列表,我假設現在我們可以使用它來獲得一個餅圖:

sums1 <- sumcols(m1)
sums2 <- sumcols(m2)
par(mfrow = c(1,2))
pie(c(sums1,sums2))

謝謝您的幫助!

這將為您提供第1列總和的餅圖:

pie(c(colSums(m1)[1],colSums(m2)[1]))

我認為barplot會提供更多信息:

barplot(c(colSums(m1),colSums(m2)), col=c(rep(1,ncol(m1)),rep(2,ncol(m1))))

更新:

嘗試這個:

#get col sums
m1_sums <- colSums(m1)
m2_sums <- colSums(m2)
#make negatives zero
m1_sums[m1_sums<0] <- 0
m2_sums[m2_sums<0] <- 0
#pie
par(mfrow = c(1,2))
pie(m1_sums,main="m1 - colSums")
pie(m2_sums,main="m2 - colSums")

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM