= data.frame(zmiennaA = c(1:10), zmiennaB = c(3:12))
df #Składnia 1
plot(df$zmiennaA, df$zmiennaB)
#Można też użyć składni
plot(zmiennaA~zmiennaB, df)
Wyświetl stronę pomocy dla funkcji plot()
oraz
par
aby sprawdzić jakie parametry można zdefiniować.
Parametry graficzne dostarczane z pakietem graphic
są
opisane także na stronie Quick-R:
Graphical Parameters
W poniższym przykładzie użyto: main - tytuł wykresu, col - kolor punktów/lini, cex - rozmiar punktów, pch - typ punktu (przyjmuje wartości od 0-25), type - typ wykresu (p-wyświetla tylko punkty, b-linie i punkty, l-tylko linie), xlim, ylim - zakres osi x oraz y, xlab, ylab - opis osi x oraz y.
plot(zmiennaA~zmiennaB,
df, main="Zależność cechy A od cechy B",
col="red",
cex=0.7,
pch = 15,
type="b",
xlab="Cecha B",
ylab = "Cecha A",
xlim=c(0,13),
ylim=c(0,13))
#Zapis wykresu do png
png("wykres1.png", width=800, height=800)
#wykres
plot(zmiennaA~zmiennaB,
df, main="Zależność cechy A od cechy B",
col="red",
cex=0.7,
pch = 15,
type="b",
xlab="Cecha B",
ylab = "Cecha A",
xlim=c(0,13),
ylim=c(0,13))
#zamknięcie okna wykresu
dev.off()
#Zapis wykresu do pdf
pdf("wykres1.pdf", width=8, height=8)
#wykres
plot(zmiennaA~zmiennaB,
df, main="Zależność cechy A od cechy B",
col="red",
cex=0.7,
pch = 15,
type="b",
xlab="Cecha B",
ylab = "Cecha A",
xlim=c(0,13),
ylim=c(0,13))
#zamknięcie okna wykresu
dev.off()
= data.frame(zmiennaA = c(1:10), zmiennaB = c(3:12)) df
library(ggplot2)
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_point()
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_point(size=2, colour="red", shape=15)
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_point(size=2, colour="red", shape=15) +
labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A")
Innym sposobem wykonania powyższego wykresu jest stworzenie “wykresu bazowego”, a następnie dodawanie do niego kolejnych elementów:
<- ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
p geom_point(size=2, colour="red", shape=15)
+ labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A") p
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_point(size=2, colour="red", shape=15) +
labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A") +
xlim(0,13) +
ylim(0,13)
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_line(linetype="dashed", color="blue", size=0.7) +
geom_point(size=2, colour="red", shape=15) +
labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A") +
xlim(0,13) +
ylim(0,13)
Zmodyfikuj powyższy kod zmieniając kolor lini na czerwoną, kropokową (dotted); zmień także typ punktu na zielone wypełnione kółka.
Poniżej zestawiono dwa wykresy: Przed zmianą (po lewej) oraz po zmianie parametrów (po prawej).
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
geom_line(linetype="dashed", color="blue", size=0.7) +
geom_point(size=2, colour="red", shape=15) +
labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A") +
xlim(0,13) +
ylim(0,13) +
theme_bw()
Sprawdź jak będzie wyglądał powyższy wykres stosując
theme_classic()
Poniżej zestawiono dwa wykresy: Przed zmianą (po lewej) oraz po zmianie parametrów (po prawej).
<- ggplot(df, aes(x=zmiennaB, y=zmiennaA)) +
p geom_point(size=2, colour="red", shape=15) +
labs(title="Zależność cechy B od cechy A", x ="Cecha B", y = "Cecha A") +
xlim(0,13) +
ylim(0,13) +
theme_classic()
ggsave(filename = "Wykres.pdf", plot = p)
ggsave(filename = "Wykres.png", plot = p, dpi = 300)
Każdy z typów wykresów może zostać wykonany za pomocą funkcji grafiki podstawowej oraz za pomocą pakietu ggplot2. Poniżej zestawione zostały funkcje do wykonania określonego typu wykresu.
Typ_wykresu | Typ_wykresu_ang | Funkcje_podstawowe | ggplot2 |
---|---|---|---|
Wykres rozrzutu | Scatter plot | plot() | geom_point() |
Wykres pudełkowy | Box plot | boxplot() | geom_boxplot() |
Histogram | Histogram plot | hist() | geom_histogram() |
Wykres gęstości | density plot | density() | geom_density() |
Wykres słupkowy | Bar plot | barplot() | geom_bar() |
Wykres liniowy | Line plot | plot() i line() | geom_line() |
Przykłady poniższych wykresów zostały wykonane na podstawie danych z
pakietu gapminder
dla 2007 roku.
data("gapminder", package = "gapminder")
<- subset(gapminder, year==2007) dane2007
ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp)) + geom_point()
<- ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp, color = pop)) +
p1 geom_point() +
labs(title = "P1")
<- ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp, size = pop)) +
p2 geom_point() +
labs(title = "P2")
<- ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp, shape = continent)) +
p3 geom_point() +
labs(title = "P3")
<- ggplot(data=dane2007, aes(x=gdpPercap, y=lifeExp, color = continent)) +
p4 geom_point() +
labs(title = "P4")
::grid.arrange(p1, p2, p3, p4, ncol = 2, nrow = 2) gridExtra
Zmodyfikuj wykres rozrzutu (P4), dodając do niego tytuł i pełen opis osi (“Oczekiwana dalsza długość trwania życia”, “PKB na osobę (USD)”). Sprawdź co zmieni się po dodaniu argumentu labs(color = “Kontynent”).
ggplot(dane2007, aes(x = continent)) + geom_bar()
Zmień sposób wyświetlania powyższego wykresu używając
theme_classic()
. Zmodyfikuj powyższy wykres dodając tytuł oraz opisy osi. Zmień kolor wypełnienia słupków na ciemnozielony (darkgreen).
Poniżej zestawiono dwa wykresy: Przed zmianą (po lewej) oraz po zmianie parametrów (po prawej).
#Oblicza średnią oczekiwaną długość życia dla poszczególnych lat
library(dplyr)
<- group_by(gapminder, year)
by_year <- summarize(by_year,
mean_lifeExp_by_year srednia=mean(lifeExp))
#Wykres liniowy
ggplot(data = mean_lifeExp_by_year, aes(x = year, y = srednia)) + geom_line()
Zmień sposób wyświetlania powyższego wykresu używając
theme_classic()
. Zmodyfikuj kolor oraz typ linii (przerywana - dashed, niebieska). Dodaj tytuł oraz opis osi.
Poniżej zestawiono dwa wykresy: Przed zmianą (po lewej) oraz po zmianie parametrów (po prawej).
Podpowiedź: Aby zapisać tytuł w dwóch liniach trzeba dodać znak symbol \n. Np. “Średnia oczekiwana długość trwania \n życia w latach 1952-2007”)
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram()
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram(bins = 15)
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram(binwidth=10000)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Obrazuje podstawowe statystyki opisowe:
dolny kwartyl - dolna krawędz pudełka
mediana - linia środkowa
górny kwartyl - górna krawędź pudełka
linie pionowe oznaczają najbardziej ekstremalne wartości (1,5IQR ponad krawędź pudełka, dolna to 1,5IQR poniżej wartości dolnej krawędzi pudełka)
punkty oznaczają wartości odstające
ggplot(data = dane2007, aes(x = continent, y = lifeExp)) + geom_boxplot()
Posługując się przykładami zamieszczonymi na stronie internetowej http://www.sthda.com/english/wiki/ggplot2-box-plot-quick-start-guide-r-software-and-data-visualization dowolnie zmodyfikuj powyższy wykres. Pamiętaj aby dodać tytuł oraz opisy osi.
Dodaj do wykresu punkt oznaczający średnią wartość. Przykład jak to zrobić można znaleźć na stronie internetowej http://www.sthda.com/english/wiki/ggplot2-box-plot-quick-start-guide-r-software-and-data-visualization
Proszę dodać komentarz do poniższego kodu, opisujący jakich modyfikacji dokonują poszczególne argumenty funkcji ggplot.
<- c("Europe", "Asia", "Africa", "Americas", "Oceania")
kolejnosc_kontynentow
ggplot(data = dane2007, aes(x = continent, y = lifeExp, color = continent)) +
geom_boxplot(outlier.colour = "red", outlier.shape = 8, outlier.size = 3) +
scale_x_discrete(limits = kolejnosc_kontynentow,
labels = c("Europa", "Azja", "Afryka", "Ameryki", "Oceania")) +
scale_color_manual(name = "Kontynent",
limits = kolejnosc_kontynentow,
labels = c("Europa", "Azja", "Afryka", "Ameryki", "Oceania"),
values = c("Europe" = "darkgreen",
"Asia" = "blue",
"Africa" = "darkorange",
"Americas" = "brown",
"Oceania" = "purple")) +
stat_summary(fun = mean, geom="point", shape=20, size=4) +
labs(x = "Kontynent",
y = "Oczekiwana długość trwania życia",
title = "Zróżnicowanie oczekiwanej długości trwania życia na kontynentach") +
theme_bw() +
theme(legend.position="bottom")
facet_wrap()
Każdy panel przedstawia histogram dla innego kontynentu.
ggplot(dane2007, aes(x = gdpPercap)) + geom_histogram() + facet_wrap(~continent)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Ze zbioru danych gapminder wyselekcjonuj dane dla 2007 roku oraz wykonaj wykresy ilustrujące:
zależność między produktem krajowym brutto (oś x) a oczekiwaną długością trwania życia z uwzględnieniem liczby ludności.
zależność między produktem krajowym brutto (oś x) a oczekiwaną długością trwania życia z uwzględnieniem podziału na kontynenty
histogram dla oczekiwanej długości trwania życia w roku 2007.
wykres słupkowy pokazujący liczbę państw na każdym kontynencie.
wykres pudełkowy pokazujący rozkład wartości gdpPercap w podziale na kontynenty.
zależność między produktem krajowym brutto (oś x) a oczekiwaną długością trwania życia dla każdego kontynentu (użyj opcji facet_wrap()).
Formatowanie wykresów: