2011-07-02 13 views
11

Chciałbym wykreślić histogram ze średnią (średnią) wartością na nim (zaznacz to na przykład przez niebieski, pogrubiony wiersz). Próbuję to zrobić za pomocą polecenia fabuły, ale nawet jeśli dodaję parametr: "dodaj = PRAWDA" to nie zadziała.dodaj wartość średnią do histogramu w R!

+1

Witamy w społeczności. Jeśli poniższe odpowiedzi rozwiązały Twój problem, powinieneś oznaczyć jeden z nich jako rozwiązanie (kliknij małe pole wyboru obok nich). W przypadku przyszłych problemów należy dostarczyć zestaw danych, który ilustruje problem, aby uniknąć sytuacji, w których użytkownicy, którzy udzielą odpowiedzi, będą musieli ponownie utworzyć dane testowe (jak zauważyli pierwsze dwie linie rozwiązania EDi). Dzięki! –

Odpowiedz

21

Można użyć abline(), aby dodać wiersze do działki:

x <- rnorm(100) 
mx <- mean(x) 
hist(x) 
abline(v = mx, col = "blue", lwd = 2) 

mają również do obejrzenia par parametrów graficznych (jak kol i LWD)?.

edit:

Odnośnie twojego pytania w komentarzach:
Można również wykreślić linie za pomocą linii().
Tekst() służy do tekstu.
Argument cex opisuje "współczynnik rozszerzalności znaku".

Również spojrzeć na Quick-R Aby otrzymać przegląd podstawowego kreślenia z R.

x <- rnorm(100, mean = 10) 
mx <- mean(x) 
hist(x) 
lines(c(mx,mx), c(0,15), col = "red", lwd = 2) 
lines(c(10, 11.5), c(0, 10), col = "steelblue", lwd = 3, lty = 22) 
text(mx, 18 , round(mx, 2)) 
text(mx, 12 , "big", cex = 5) 
+0

Czy istnieje sposób na tworzenie krótszych linii i dodawanie do nich numeru? Jak mogę przypisać rozmiar czcionki do dodanego tekstu? –

+0

zobacz moje zmiany ... – EDi

10
hist(data) 
abline(v=mean(data),col="blue") 
+2

sekund szybciej niż ja ... – EDi

+0

Brakowało mi wyraźnego v dla parametru "pionowy" – espaciomore

5

Jeśli masz ramek danych z kilku kolumnach z wykorzystaniem pakietu ggplot2 jest mój preferowaną opcję:

ggplot (data, aes (x = colname)) + geom_vline(xintercept=mean(data$colname), color="red") 

Colname jest kolumną w twoich danych.frame, dla której chcesz wykreślić histogram i średnią.

1

Wpadłem na problem, w którym nie pojawiła się średnia linia, i nie otrzymałem żadnego błędu, który pomógłby mi zrozumieć dlaczego. Zdałem sobie sprawę, że nic się nie dzieje, ponieważ miałem brakujące dane, więc średnia została obliczona jako NA. Dodanie na.rm = T do mean() arg dostało mi liczbę rzeczywistą i pojawiła się linia średnia. To niewielkie niedopatrzenie i prosta poprawka, o której nie warto pisać, ale mimo to publikuję ją na wszelki wypadek, by uratować komuś trochę żalu.

hist(data$Defect.rate, 
xlim = c(0, 1), 
col = "light blue") 

abline(v = mean(data$Defect.rate, na.rm = T), 
      col = "red", 
      lwd = 2) 
Powiązane problemy