Histogramm mit gleichen Abstände auf x-Achse
Moderator: jogo
Histogramm mit gleichen Abstände auf x-Achse
Hallo,
ich bin ganz neu in R und habe ein Problem, auf das ich leider keine Lösung gefunden habe. In einer Studie wurde das Alter erfasst (z.B. von 23-27 Jahren), wobei einige Zwischenwerte nicht auftreten (z.B. 24 und 26 Jahre). Ich möchte daraus ein Histogramm erstellen.
Hier ein Minimalbeispiel. (Das Data Frame lese ich eigentlich aus einer Excel ein. Für das Beispiel hier erzeuge ich es.)
t = c(23, 23, 27, 25, 27)
df_test = data.frame(t)
barplot(table(df_test))
Mein Problem ist, dass in dem Plot die 26 nicht auftaucht, was die Achse verzerrt. Ich möchte dass die x-Achse vom Minimalalter bis zum Maximalalter mit gleichen Abständen verläuft. Ich hoffe mir kann jemand helfen
Viele Grüße
Edward
ich bin ganz neu in R und habe ein Problem, auf das ich leider keine Lösung gefunden habe. In einer Studie wurde das Alter erfasst (z.B. von 23-27 Jahren), wobei einige Zwischenwerte nicht auftreten (z.B. 24 und 26 Jahre). Ich möchte daraus ein Histogramm erstellen.
Hier ein Minimalbeispiel. (Das Data Frame lese ich eigentlich aus einer Excel ein. Für das Beispiel hier erzeuge ich es.)
t = c(23, 23, 27, 25, 27)
df_test = data.frame(t)
barplot(table(df_test))
Mein Problem ist, dass in dem Plot die 26 nicht auftaucht, was die Achse verzerrt. Ich möchte dass die x-Achse vom Minimalalter bis zum Maximalalter mit gleichen Abständen verläuft. Ich hoffe mir kann jemand helfen
Viele Grüße
Edward
Re: Histogramm mit gleichen Abstände auf x-Achse
barplot ist für Balkengrafiken, hist ist für Histogramme.
zeichnet ein Histogramm. Das schönere Histogramm zeichnet:
Wenn Du in Wirklichkeit gar kein Histogramm haben möchtest, sondern ein Balkendiagramm gewünscht wird, dann empfehle ich aushilfsweise
Zunehmen weiter verbreitet und beliebter dürfte das Grafiksystem Ggplot2 sein, bei dem man aber auch zwischen Balkengrafik und Histogramm unterscheiden muss:
LG,
Bernhard
Code: Alles auswählen
hist(t)
Code: Alles auswählen
hist(t, breaks = seq(22.5, 28.5, 2))
Code: Alles auswählen
plot(table(t))
Code: Alles auswählen
t = c(23, 23, 27, 25, 27)
df_test = data.frame(t)
barplot(table(df_test))
library(ggplot2)
ggplot(df_test, aes(x=t)) + geom_bar()
ggplot(df_test, aes(x=t)) + geom_histogram(bins = 4, fill = "grey", color ="black")
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Histogramm mit gleichen Abstände auf x-Achse
Hallo Bernhard,
danke für die schnelle Antwort. Mit ggplot2 hat funktioniert es soweit.
Eine Nachfrage habe ich noch: Den Vektor t habe ich nur für das Minimalbeispiel erzeugt. In meinem Fall habe ich nur das Data Frame. Wenn ich aes(x=df_test) schreibe, gibt es einen Fehler.
Gibt es dafür eine Lösung? Oder ist es einfacher, df_test zuerst umzuwandeln oder gar nicht erst mit Data Frames zu arbeiten?
Viele Grüße
Edward
danke für die schnelle Antwort. Mit ggplot2 hat funktioniert es soweit.
Eine Nachfrage habe ich noch: Den Vektor t habe ich nur für das Minimalbeispiel erzeugt. In meinem Fall habe ich nur das Data Frame. Wenn ich aes(x=df_test) schreibe, gibt es einen Fehler.
Code: Alles auswählen
Don't know how to automatically pick scale for object of type tbl_df/tbl/data.frame. Defaulting to continuous.
Fehler in is.finite(x) :
nicht implementierte Standardmethode für Typ 'list'
Viele Grüße
Edward
Re: Histogramm mit gleichen Abstände auf x-Achse
ggplot arbeitet NUR mit data.frames.
Das beschreibt, dass aus dem data.frame "df_test" die Spalte "t" auf die x-Achse abgetragen werden soll.
Code: Alles auswählen
ggplot(df_test, aes(x=t))
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: Histogramm mit gleichen Abstände auf x-Achse
Ja, da habe ich etwas unglücklich agiert, weil ich die base-Grafik-Beispiele auf dem Vektor, das ggplot_Beispiel aber auf dem DAtaframe aufgebaut habe.
In base ware das dann nicht
sondern
oder
Für ggplot2 hat EDi ja bereits geantwortet, dass ich dort keine Wahl hatte, welches t ich nehme, sondern das in einen data.frame verpackte nehmen musste.
Viel Erfolg,
Bernhard
In base ware das dann nicht
Code: Alles auswählen
hist(t)
Code: Alles auswählen
hist(df_test$t)
Code: Alles auswählen
hist(df_test[["t"]])
Viel Erfolg,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Histogramm mit gleichen Abstände auf x-Achse
Vielen Dank!