我有一个 Dataframe ,我想知道如何根据列名改变条形图的颜色。当我绘制下面的条形图时,我得到了一个交替的条形图,绿色,红色,黄色和蓝色(重复),而不是将A列中的所有内容(前5个条形图)都涂成绿色。
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")
print(df)
col.colors <- c(A="green", B="red", C="yellow", D="blue")
barplot(as.vector(as.matrix(df)), names = as.matrix(df), col=col.colors[colnames(df)])
1条答案
按热度按时间5n0oy7gb1#
由于您使用
as.vector()
消除了矩阵形状,因此需要为每一行数据重复取值。