首页 > 解决方案 > 排列/排序堆积条形图的数据框列

问题描述

我是 R 新手。我希望使用barplot(as.matrix(df)). 问题是我希望排列数据框的列,使图的条形按其长度的降序排列。df是:

      A  B  C  D
val1  12 5  20 18
val2  20 15 28 7

堆积条形图 .

我尝试reorder了功能,但这改变了条的宽度,使一些条更细,一些更厚。

我希望条形图有序-> CADB

df <- data.frame(
  A = c(12,20),
  B = c(5,15),
  C = c(20,28),
  D = c(18,7)
)

rownames(df) <- c("val1","val2")

barplot(as.matrix(df))

标签: rdataframeplotbar-chart

解决方案


colSums您可以在绘图之前按负数对数据框列进行排序。

barplot(as.matrix(df[, order(-colSums(df))]))

产量

在此处输入图像描述

数据

df <- structure(list(A = c(12, 20), B = c(5, 15), C = c(20, 28), D = c(18, 
7)), class = "data.frame", row.names = c("val1", "val2"))

推荐阅读