Seite 1 von 1

abline an falscher Position

Verfasst: Fr Aug 28, 2020 3:01 pm
von Nad.boe
Hallo,

ich habe einen Barplot gemacht und wollte den Mittelwert mit einer abline einzeichnen. Das funktioniert in den meisten Fällen auch, allerdings habe ich ein paar Fälle, in denen die Linie einfach nicht an der richtigen Stelle ist (z.B. der Mittelwert is 4,3 und die Linie wird bei 4 eingezeichnet).

Code: Alles auswählen

barplot(table(FB1$Item4), 
	ylim = c(0,12), 
	axis.lty = 1, 
	main = names(FB1$Item4), 
	ylab = "Häufigkeit", 
	xlab = "Kategorien",
	cex.lab=2, 
	cex.axis=2, 
	cex.names = 2, 
	cex.main=2.5)
abline(v=mean(as.numeric(FB1$Item4)), col="firebrick3", lwd=3)
Ich habe leider keine Ahnung, was da falsch läuft. Hat jemand eine Idee, wie man das Problem beheben kann?

Liebe Grüße,
Nadine

Re: abline an falscher Position

Verfasst: Fr Aug 28, 2020 3:13 pm
von bigben
Hallo Nadine,

Code: Alles auswählen

Error in table(FB1$Item4) : object 'FB1' not found
ohne den Datensatz FB1 läuft das bei uns nicht, der Fehler ist also hier nicht nachzukochen. Bitte poste ein paar Beispieldaten, mit denen das Poblem auftritt. viewtopic.php?f=20&t=11

Es gibt mehrere mögliche Szenarien, die man sich denken kann. Wo sollte Deiner Meinung nach hier der Mittelwert eingezeichnet werden?

Code: Alles auswählen

n <- c(1, 1, 1, 1, 2, 2, 2, 2, 2, 10, 10)
barplot(table(n))
In vielen Fällen wird es einfacher, wenn man anstelle von barplot einfach die Funktion plot nimmt. In meinem Beispiel etwa so:

Code: Alles auswählen

n <- c(1, 1, 1, 1, 2, 2, 2, 2, 2, 10, 10)
plot(table(n))
abline(v = mean(n), col ="firebrick", lty=3)
LG,
Bernhard

Re: abline an falscher Position

Verfasst: Fr Aug 28, 2020 4:08 pm
von Nad.boe
Hallo Bernhard,

Code: Alles auswählen

Error in table(FB1$Item4) : object 'FB1' not found
ohne den Datensatz FB1 läuft das bei uns nicht, der Fehler ist also hier nicht nachzukochen. Bitte poste ein paar Beispieldaten, mit denen das Poblem auftritt. viewtopic.php?f=20&t=11
Entschuldigung, da habe ich tatsächlich im Eifer des Gefechts nicht dran gedacht. Das entsprechende Item wäre mit folgenden Werten:

Code: Alles auswählen

Item4 <- c(5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 2, 2)
barplot(table(Item4), ylim = c(0,12), axis.lty = 1, 
          main = "Item 4", ylab = "Häufigkeit", 
          xlab = "Kategorien", cex.lab=2, 
          cex.axis=2, cex.names = 2, 
          cex.main=2.5)
  abline(v=round(mean(as.numeric(Item4)),1), col="firebrick3", lwd=3)
Wo sollte Deiner Meinung nach hier der Mittelwert eingezeichnet werden?
Wenn ich mir den Mittelwert ausgeben lasse, dann kommt 4,3 raus, eingezeichnet wird die Linie aber bei 4,0.
In vielen Fällen wird es einfacher, wenn man anstelle von barplot einfach die Funktion plot nimmt. In meinem Beispiel etwa so:

Code: Alles auswählen

n <- c(1, 1, 1, 1, 2, 2, 2, 2, 2, 10, 10)
plot(table(n))
abline(v = mean(n), col ="firebrick", lty=3)
Wenn ich den Plot mache, dann ist die Linie an der richtigen Stelle eingezeichnet :shock: Das verstehe ich wirklich nicht, warum es da klappt und beim barplot nicht :(

Liebe Grüße,
Nadine

Re: abline an falscher Position

Verfasst: Fr Sep 04, 2020 10:51 am
von dvf
Wenn man mittels locator() die Lage der Mittelwertlinie überprüft, erhält man für den x-Wert 4.3. Also i. O.
Was nicht "stimmt", sind die x-Werte für die Säulen.
==> barplot() eignet sich nicht für die gewünschte Darstellung. Wie bigben schon gesagt hat, sollte man plot() nehmen.

Gruß
dvf