R Language
Rysowanie podstawowe
Szukaj…
Parametry
Parametr | Detale |
---|---|
x | zmienna osi x. Może podawać data$variablex lub data[,x] |
y | zmienna osi y. Może podawać data$variabley lub data[,y] |
main | Główny tytuł fabuły |
sub | Opcjonalny podtytuł fabuły |
xlab | Etykieta dla osi x |
ylab | Etykieta dla osi y |
pch | Liczba całkowita lub znak wskazujący symbol kreślenia |
col | Liczba całkowita lub ciąg wskazujący kolor |
type | Rodzaj działki. "p" dla punktów, "l" dla linii, "b" dla obu, "c" dla samych linii częściowo z "b" , "o" dla obu „wykreślonych”, "h" dla „histogramu” ( lub „wysokiej gęstości”) pionowe linie, "s" dla stopni schodów, "S" dla innych stopni, "n" dla braku kreślenia |
Uwagi
Elementy wymienione w sekcji „Parametry” to niewielki ułamek możliwych parametrów, które można modyfikować lub ustawiać za pomocą funkcji par
. Bardziej kompletna lista patrz par
. Ponadto wszystkie urządzenia graficzne, w tym specyficzne dla systemu interaktywne urządzenia graficzne, będą miały zestaw parametrów, które mogą dostosować dane wyjściowe.
Podstawowa fabuła
Podstawowy wykres jest tworzony przez wywołanie plot()
. Tutaj wykorzystujemy wbudowaną ramkę danych cars
która zawiera prędkość samochodów i odległości zatrzymane w latach dwudziestych. (Aby dowiedzieć się więcej o zestawie danych, skorzystaj z pomocy (samochody)).
plot(x = cars$speed, y = cars$dist, pch = 1, col = 1,
main = "Distance vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
Możemy użyć wielu innych odmian kodu, aby uzyskać ten sam wynik. Możemy również zmienić parametry, aby uzyskać różne wyniki.
with(cars, plot(dist~speed, pch = 2, col = 3,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance"))
Do tego wykresu można dodać dodatkowe funkcje, wywołując points()
, text()
, mtext()
, lines()
, grid()
itp.
plot(dist~speed, pch = "*", col = "magenta", data=cars,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")
Matplot
matplot
jest przydatny do szybkiego wykreślania wielu zestawów obserwacji z tego samego obiektu, szczególnie z macierzy, na tym samym wykresie.
Oto przykład macierzy zawierającej cztery zestawy losowych losowań, każdy o innej średniej.
xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
# [,1] [,2] [,3] [,4]
# [1,] -3.072793 -2.53111494 0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126 1.9586467 5.268474
# [4,] -3.431133 -2.02626870 1.1153643 3.170689
# [5,] -4.532925 0.02164187 0.9783948 3.162121
# [6,] -2.169391 -1.42699116 0.3214854 4.480305
Jednym ze sposobów wykreślenia wszystkich tych obserwacji na tym samym wykresie jest wykonanie jednego wywołania plot
a następnie kolejnych trzech wywołań points
lub lines
.
plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')
Jest to jednak zarówno żmudne, jak i powoduje problemy, ponieważ między innymi domyślnie granice osi są ustalane przez plot
aby pasowały tylko do pierwszej kolumny.
Znacznie wygodniejsze w tej sytuacji jest użycie funkcji matplot
, która wymaga tylko jednego wywołania i automatycznie zajmuje się ograniczeniami osi i zmienia estetykę każdej kolumny, aby umożliwić ich rozróżnienie.
matplot(xmat, type = 'l')
Zauważ, że domyślnie matplot
zmienia zarówno kolor ( col
), jak i lty
linii ( lty
), ponieważ zwiększa to liczbę możliwych kombinacji przed ich powtórzeniem. Jednak dowolną (lub obie) z tych estetyki można ustawić na jedną wartość ...
matplot(xmat, type = 'l', col = 'black')
... lub niestandardowy wektor (który będzie przetwarzany do liczby kolumn, zgodnie ze standardowymi zasadami recyklingu wektorów R).
matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))
Standardowe parametry graficzne, w tym main
, xlab
, xmin
, działają dokładnie tak samo, jak w przypadku plot
. Aby uzyskać więcej informacji na ten temat, patrz ?par
.
Podobnie jak plot
, jeśli podano tylko jeden obiekt, matplot
zakłada, że jest to zmienna y
i używa indeksów dla x
. Jednakże, x
i y
mogą być podane bezpośrednio.
matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')
W rzeczywistości zarówno x
, jak i y
mogą być macierzami.
xes <- cbind(seq(0, 10, length.out = 100),
seq(2.5, 12.5, length.out = 100),
seq(5, 15, length.out = 100),
seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')
Histogramy
Histogramy pozwalają na pseudo-wykres bazowego rozkładu danych.
hist(ldeaths)
hist(ldeaths, breaks = 20, freq = F, col = 3)
Łączenie wykresów
Często przydatne jest łączenie wielu typów wykresów na jednym wykresie (np. Barplot obok Scatterplot.) R ułatwia to za pomocą funkcji par()
i layout()
.
par()
par
używa argumentów mfrow
lub mfcol
do utworzenia macierzy nrows i ncols c(nrows, ncols)
która posłuży jako siatka dla twoich wykresów. Poniższy przykład pokazuje, jak połączyć cztery wykresy na jednym wykresie:
par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
layout()
layout()
jest bardziej elastyczny i pozwala określić lokalizację i zasięg każdego wykresu w końcowym łączonym wykresie. Ta funkcja oczekuje obiektu wejściowego jako danych wejściowych:
layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
Wykres gęstości
Bardzo przydatną i logiczną kontynuacją histogramów byłoby wykreślenie wygładzonej funkcji gęstości zmiennej losowej. Podstawowa fabuła stworzona przez polecenie
plot(density(rnorm(100)),main="Normal density",xlab="x")
wyglądałby jak
Możesz nałożyć histogram i krzywą gęstości za pomocą
x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")
co daje
Empiryczna funkcja skumulowanego rozkładu
Bardzo przydatną i logiczną kontynuacją histogramów i wykresów gęstości byłaby funkcja empirycznej kumulatywnej dystrybucji. W tym celu możemy użyć funkcji ecdf()
. Podstawowa fabuła stworzona przez polecenie
plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")
Rozpoczęcie pracy z R_Plots
- Wykres punktowy
Masz dwa wektory i chcesz je wykreślić.
x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)
Jeśli chcesz utworzyć wykres, który ma wartości y_values
osi pionowej i wartości x_values
osi poziomej, możesz użyć następujących poleceń:
plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot
Możesz wpisać ?plot()
w konsoli, aby przeczytać o więcej opcjach.
- Boxplot
Masz jakieś zmienne i chcesz sprawdzić ich rozkłady
#boxplot is an easy way to see if we have some outliers in the data.
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers
boxplot(z) # the two points are the outliers of variable z.
- Histogramy
Łatwy sposób rysowania histogramów
hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
- Wykresy kołowe
Jeśli chcesz wizualizować częstotliwości zmiennej, po prostu narysuj ciasto
Najpierw musimy wygenerować dane z częstotliwościami, na przykład:
P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above