1

我有一个数据框:

                X2    X13    X18     X3   X15    X19
comp162192_c0 194.63 118.80 149.67  71.02 59.49  75.03
comp166160_c1 535.49 595.86 535.97 171.93 86.01 268.39
comp149395_c1  45.98  99.92  74.21  26.46 14.72  27.69

我想从该数据的一行生成一个条形图,以便对 X2、X13 和 X18 的值进行分组,并对 X3、X15、X19 的值进行分组。IE。一组 3 个垂直条,其值为 194.63 118.80 149.67,一个间隙,然后是一组 3 个垂直条,其值为 71.02 59.49 75.03

看不到一个简单的方法来做到这一点。我遗漏了一些我知道的东西,但我无法完全理解本教程。

4

1 回答 1

0

如果您阅读该barplot()函数的帮助文件,您将看到该参数的解释height

... 描述构成绘图的条形的向量或值矩阵。... 如果 height 是一个矩阵,beside 是 TRUE,那么每列中的值是并列的,而不是堆叠的。

因此,您需要重新排列数据,以便要绘制的数字组位于矩阵的单列中。您可以使用cbind()函数对要绘制的三个值中的每一个执行此操作。

df <- structure(list(X2 = c(194.63, 535.49, 45.98), X13 = c(118.8, 
    595.86, 99.92), X18 = c(149.67, 535.97, 74.21), X3 = c(71.02, 
    171.93, 26.46), X15 = c(59.49, 86.01, 14.72), X19 = c(75.03, 
    268.39, 27.69)), .Names = c("X2", "X13", "X18", "X3", "X15", 
    "X19"), class = "data.frame", row.names = c("comp162192_c0", 
    "comp166160_c1", "comp149395_c1"))

barplot(cbind(unlist(df[1, 1:3]), unlist(df[1, 4:6])), beside=TRUE)

(请注意,我使用该dput()功能以其他人可以在 R 中轻松访问的方式共享您的数据。)

于 2013-11-13T13:48:27.407 回答