如何使用依赖于R中列名的条形图为条形图着色
我有两个数据帧和一个函数maxthree,它接受一个数据帧和行名称作为参数,并绘制行上的三个最高值(按降序)和三个最高值的列的名称如何使用依赖于R中列名的条形图为条形图着色,r,function,dataframe,bar-chart,R,Function,Dataframe,Bar Chart,我有两个数据帧和一个函数maxthree,它接受一个数据帧和行名称作为参数,并绘制行上的三个最高值(按降序)和三个最高值的列的名称 set.seed(0) df <- data.frame(A=c(3,2,1,4,5),B=c(1,6,3,8,4),C=c(2,1,4,8,9), D=c(4,1,2,4,6)) row.names(df)<-c("R1","R2","R3","R4","R5") df2 <- data.frame(E=c(2
set.seed(0)
df <- data.frame(A=c(3,2,1,4,5),B=c(1,6,3,8,4),C=c(2,1,4,8,9), D=c(4,1,2,4,6))
row.names(df)<-c("R1","R2","R3","R4","R5")
df2 <- data.frame(E=c(2,5,6,1,4),F=c(2,4,2,5,1),G=c(5,6,2,7,3),H=c(8,2,7,4,1))
row.names(df2)<-c("R6","R7","R8","R9","R10")
print(df)
A B C D
R1 3 1 2 4
R2 2 6 1 1
R3 1 3 4 2
R4 4 8 8 4
R5 5 4 9 6
print(df2)
E F G H
R6 2 2 5 8
R7 5 4 6 2
R8 6 2 2 7
R9 1 5 7 4
R10 4 1 3 1
maxthree <- function(data, row) {
order<-as.matrix(data[row, order(unlist(data[row, ]), decreasing = TRUE)[1:3]])
barplot(order)
}
maxthree(df2, "R7")
种子集(0)
df以下是一种使用命名向量为不同行定义颜色的方法:
col.colors <- c(E="green", F="red", G="yellow", H="blue")
maxthree <- function(data, row) {
order<-as.matrix(data[row, order(unlist(data[row, ]), decreasing = TRUE)[1:3]])
order.names <- colnames(order)
order.colors <- col.colors[order.names]
barplot(as.vector(order), names.arg = order.names, col = order.colors)
}
maxthree(df2, "R7")
col.colors