web-dev-qa-db-fra.com

'hauteur' doit être un vecteur ou une matrice. erreur de tracé de barre

J'essaie de créer un graphique à barres simple, mais je reçois toujours le message d'erreur

'height' must be a vector or a matrix

La fonction barplot que j'ai essayée est

barplot(data, xlab="Percentage", ylab="Proportion")

J'ai entré mon csv et les données se présentent comme suit:

34.88372093 0.00029997
35.07751938 0.00019998
35.27131783 0.00029997
35.46511628 0.00029997
35.65891473 0.00069993
35.85271318 0.00069993
36.04651163 0.00049995
36.24031008 0.0009999
36.43410853 0.00189981
...

Où vais-je mal ici?

Merci d'avance!

MODIFIER:

dput(head(data)) outputs:
structure(list(V1 = c(34.88372093, 35.07751938, 35.27131783, 
35.46511628, 35.65891473, 35.85271318), V2 = c(0.00029997, 0.00019998, 
0.00029997, 0.00029997, 0.00069993, 0.00069993)), .Names = c("V1", 
"V2"), row.names = c(NA, 6L), class = "data.frame")

et barplot(as.matrix(data)) a produit un graphique avec toutes les données d'une barre par opposition à chaque élément de données sur une barre distincte.

11
user2941526

Vous pouvez spécifier les deux variables que vous souhaitez tracer plutôt que de passer la trame de données entière, comme ceci:

data <- structure(list(V1 = c(34.88372093, 35.07751938, 35.27131783, 35.46511628, 35.65891473, 35.85271318), 
                       V2 = c(0.00029997, 0.00019998, 0.00029997, 0.00029997, 0.00069993, 0.00069993)), 
                  .Names = c("V1", "V2"), row.names = c(NA, 6L), class = "data.frame")

barplot(data$V2, data$V1, xlab="Percentage", ylab="Proportion")

base r graphics version

Vous pouvez également utiliser ggplot pour ce faire:

library(ggplot2)
ggplot(data, aes(x=V1, y=V2)) + geom_bar(stat="identity") + 
  labs(x="Percentage", y="Proportion")

ggplot version

8
Andrew