hist () - Fehler: "Brüche" nicht Spannweite range von 'Daten' und barplot(, log = "y") Fehler: 'Höhe + offset <= 0
In der x-Achse, ich habe eine große Datenmenge (0:700)
Wenn ich diese :
dh <- hist(data)
barplot(dh$counts, log="y", col="white", names.arg=dh$breaks[-1])
Bekomme ich diese Grafik:
Aber ich will kleineren Werten bricht.
Ich habe versucht, zu ändern, die Pausen Wert, aber ich erhalte eine Fehlermeldung
Fehler in hist.Standard(Daten, breaks = seq(5, 700, by = 10)) : einige 'Daten' nicht gezählt; vielleicht "bricht" nicht Spannweite range von 'Daten'
follow-up:
Nach Einstellung breaks = seq(0, 700, by = 10)
wie die Antwort suggeriert, hist()
funktioniert gut, aber barplot()
gibt mir Fehler:
Fehlerprotokoll Achse: mindestens ein Wert 'height + offset <= 0
Was ist passiert?
InformationsquelleAutor AbirH | 2016-05-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
original-Ausgabe mit
hist
:Ich denke, Sie sollten Pausen
breaks = seq(0, 700, by = 10)
, wie Sie sagten in Ihrem Kommentar, dassrange(data)
Berichtec(0, 690)
.hist.default()
wird Fehler melden, wenn die Pausen nicht decken den Bereich mit Ihren Daten. Ihre aktuelle Einstellung:breaks = seq(5, 700, by = 10)
hat mindestens 5 und maximal 695, das ist etwas unzureichend an den linken Rand.Ich kann einfach den Fehler reproduzieren Sie sah:
follow-up-Problem mit
barplot
:Ich kann erraten, was passiert ist. Überprüfen Sie
min(dh$counts)
, und ich denke, es ist 0. Sie wissen,log(0) = -INF
, und Sie können nicht zeichnen Sie es.Warum nicht mit einem Häkchen auf
foo <- hist(data, plot = FALSE)
, und sehen Sie, was bin-Zellen und Pausen, die es wählt? Die Chancen sind, dasshist()
hat mit bedacht gewählten klassenbreite, so dass keine 0 Anzahl Auftritt.Wenn Sie versuchen zu verfeinern, die automatisch gewählt bin-Größe, sollten Sie versuchen, das gleiche zu erreichen, nicht entstehen 0. (Gut, wenn Sie nicht setzen
log = "y"
imbarplot()
dann ist es wirklich egal.)Könnte ich Ihnen auch einen trick/cheat. Sie tun könnten
barplot(dh$counts + 1, log = "y", ...)
. Nach Zugabe von 1, die mindestenslog
Wert 0 ist, und es ist überhaupt kein problem! Sicherlich zählt die Werte ändert, aber wahrscheinlich ist es nicht Auffällig, auf Ihrem Grundstück für die Präsentation.