2017-12-01 6 views
-1

내가 그룹화 바가있는 barplot을 만들려고해야하지만이 오류가 있습니다R : Barplot 높이가 벡터 나 행렬

'height' must be a vector or a matrix

을 그리고 난 이유를 알고하지 않습니다. 내 코드는 ...

rebDef=sample(50:100,14,replace=F) 
rebOf=sample(20:40, 14, replace=F) 
rebTot=sample(70:140, 14, replace=F) 
data=data.frame(rebDef,rebOf,rebTot) 
v <- c("Equipo A", "Equipo B", "Equipo C", "Equipo D", "Equipo E", "Equipo F", "Equipo G", "Equipo H", "Equipo I", "Equipo J", "Equipo K", "Equipo M", "Equipo N", "Equipo O") 
names <- data.frame(v) 
rownames(data) <- names[, 1] 

barplot(data, beside=T , legend.text=T, col=c("red" , "green", "blue"), ylim=c(0,140), ylab="height") 

그리고 데이터에서 내 dput ... 마지막으로

structure(list(rebDef = c(93L, 59L, 80L, 58L, 71L, 70L, 83L, 
77L, 99L, 52L, 84L, 98L, 100L, 86L), rebOf = c(20L, 38L, 32L, 
35L, 36L, 29L, 30L, 26L, 39L, 22L, 25L, 28L, 23L, 33L), rebTot = c(99L, 
105L, 107L, 72L, 118L, 87L, 115L, 88L, 85L, 131L, 137L, 84L, 
126L, 136L)), .Names = c("rebDef", "rebOf", "rebTot"), row.names = c("Equipo A", 
"Equipo B", "Equipo C", "Equipo D", "Equipo E", "Equipo F", "Equipo G", 
"Equipo H", "Equipo I", "Equipo J", "Equipo K", "Equipo M", "Equipo N", 
"Equipo O"), class = "data.frame") 

라는 데이터가 데이터 프레임의 내용 ...

  rebDef rebOf rebTot 
Equipo A  93 20  99 
Equipo B  59 38 105 
Equipo C  80 32 107 
Equipo D  58 35  72 
Equipo E  71 36 118 
Equipo F  70 29  87 
Equipo G  83 30 115 
Equipo H  77 26  88 
Equipo I  99 39  85 
Equipo J  52 22 131 
Equipo K  84 25 137 
Equipo M  98 28  84 
Equipo N 100 23 126 
Equipo O  86 33 136 

입니다 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

난 당신이 높이 매개 변수로 DataFrame을 전달하려고하는 것이 문제라고 생각합니다. 벡터 또는 행렬 만 사용해야합니다. 다음과 같이 시도해 볼 수 있습니다.

barplot(as.matrix(data), beside=T , legend.text=T, col=c("red" , "green", 
"blue"), ylim=c(0,140), ylab="height") 

이 정보가 도움이되기를 바랍니다.

+0

작동합니다! 그러나 막대기는 열로 분류되지 않고 열로 그룹화되어 나타납니다. 내가 줄을 서서 바라 푸트에게 어떻게 말할 수 있는지 아십니까? –

+1

그래, 필요한 것은 as.matrix 호출을 따라 at()를 추가하여 행렬을 조 변경하는 것입니다. barplot (t (as.matrix (data)), T =, legend.text = T, col = (빨강, 초록색, "파랑"), ylim = c (0,140), ylab = "높이") 시도해보고 도움이되는지 확인하십시오. –

+0

그것은 작동합니다! 고맙습니다!!! 죄송하지만, 이제는 두 가지 새로운 문제가 있습니다. (그래프는 정확하지만 각 그룹의 모든 라벨과 전설 텍스트가 막대 위에 표시되지 않고 오른쪽에 있고 싶습니다. 그래프를 ...이 모든 것을 수행 할 수 있습니까? –