hist() erreur: "pauses" ne couvrent pas la gamme des 'données' et barplot(, journal = “y”) erreur: 'hauteur + offset <= 0
Dans l'axe des x, j'ai une grande quantité de données (0:700)
Quand je l'utilise :
dh <- hist(data)
barplot(dh$counts, log="y", col="white", names.arg=dh$breaks[-1])
- Je obtenir ce graphique:
Mais je veux obtenir des valeurs plus petites de pauses.
J'ai essayé de modifier les sauts de valeur, mais j'obtiens une erreur
Erreur dans hist.par défaut(données, breaks = seq(5, 700, by = 10)) : certaines "données" ne sont pas comptés; peut-être des "pauses" ne couvrent pas la gamme des 'données'
suivi:
Après la mise breaks = seq(0, 700, by = 10)
que la réponse suggère, hist()
fonctionne très bien mais barplot()
me donne l'erreur:
journal des erreurs de l'axe: au moins une valeur de hauteur + offset <= 0
Ce qui s'est passé?
OriginalL'auteur AbirH | 2016-05-27
Vous devez vous connecter pour publier un commentaire.
problème d'origine avec
hist
:Je pense que vous devriez mettre des sauts de
breaks = seq(0, 700, by = 10)
, comme vous l'avez dit dans votre commentaire, querange(data)
rapportsc(0, 690)
.hist.default()
affiche le message d'erreur, si les pauses ne couvrent pas l'ensemble de vos données. Votre configuration actuelle:breaks = seq(5, 700, by = 10)
possède un minimum de 5 et un maximum 695, ce qui est légèrement insuffisant à la frontière gauche.Je peux facilement reproduire l'erreur que vous avez vu:
suivi de la question avec
barplot
:Je peux deviner ce qui s'est passé. Vérifier
min(dh$counts)
, et je pense qu'il est de 0. Vous savez,log(0) = -INF
, et vous ne pouvez pas tracer.Pourquoi ne pas avoir un contrôle sur
foo <- hist(data, plot = FALSE)
, et de voir ce bin cellules et les pauses-il choisit? Les Chances sont quehist()
a sagement choisi bin taille, de sorte qu'aucun 0 le comte se produit.Lorsque vous essayez d'affiner l'auto-choisis la corbeille, vous devriez viser à atteindre le même, ne pas s'exposer à 0. (Eh bien, si vous ne définissez pas
log = "y"
dansbarplot()
alors il n'a vraiment pas d'importance.)Je pourrais aussi vous donner une astuce/cheat. Vous pourriez faire
barplot(dh$counts + 1, log = "y", ...)
. Après l'ajout de 1, le minimum delog
valeur est 0, et il n'y a pas de problème! Sûrement le compte des valeurs de changements, mais la plus probable, il n'est pas visible sur votre parcelle de terrain pour la présentation.OriginalL'auteur 李哲源