我有一个数据框:
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的值分组。即。一组3个垂直条,值194.63 118.80 149.67,一个间隙,然后是一组3个垂直条,值为71.02 59.49 75.03
看不到一个简单的方法来做到这一点。我错过了一些我知道的东西,但是我无法做出教程的头脑和尾部。
答案 0 :(得分:0)
如果您阅读了barplot()
函数的帮助文件,您将看到参数height
的解释,
...描述制作条形的值的向量或矩阵 情节。 ...如果height是一个矩阵而旁边是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中轻松访问数据的方式共享您的数据。)