Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3_R_візуалізація_2

.pdf
Скачиваний:
7
Добавлен:
07.02.2016
Размер:
529.01 Кб
Скачать

Рис. 4.11 – Приклад побудови другого графіка для завдання 4.2

Узагальнену статистику для другої діаграми одержуємо за допомогою команди:

boxplot(x1 + x4, c(x1, x4), (x2 +x3)/2, plot = FALSE).

Результат наведено на рис. 4.12.

3. Для створення графіків функцій, подібних заданим, ми можемо використати таку систему команд:

>curve(sin(20*x)/cosh(15*x), -0.5, 1.5, ylab = "f(x)", col = 30, type = "S", ylim = c(-0.8, 1))

>curve(sin, col = 50, type = "o", cex = 1.5, add = TRUE)

Результат їх виконання наведено на рис. 4.13.

Рис. 4.12 – Узагальнена статистика для другої діаграми завдання 4.2

4. Для вирішення подібного завдання використовуємо таку систему команд:

>h = c(2, 7, 1, 4, 5)

>rat = function(x) + {

+ num = h[1]*x^2 + h[2]*x + h[3] + den = h[4]*x + h[5]

+ num/den + }

>curve(rat, –5, 5, col = 75, ylim = c(–4, 10))

>abline(a = (h[2]*h[4] – h[1]*h[5])/(h[4]^2), b = h[1]/h[4], lty = 3, col = 76, lwd = 2.5)

>abline(v = –h[5]/h[4], lty = 3, col = 76, lwd = 2.5)

Першій рядок створює вектор аргументів функції h = (h1, h2, h3, h4, h5). У другому рядку створюється функція rat(). Далі йде тіло функції з описом дій, які потрібно виконати для розрахунку її значення. Після цього наведено команди, необхідні для побудови кривої та асимптот. Для похилої

асимптоти точку перетину з віссю ординат визначаємо як

h2 h4 h1 h5

, а її

h42

 

 

нахил – як

h1

.

Положення вертикальної асимптоти за віссю абсцис

 

 

 

h4

 

визначаємо як

 

h5

. Результат показано на рис. 4.14.

 

h4

 

 

 

Рис. 4.13 – Приклад результату виконання завдання 3

 

5. Як приклад

візьмемо перших 30

абітурієнтів

спеціальності

"Міжнародні

економічні

відносини"

ЗНТУ

(http://www.vstup.info/2014/91/i2014i91p174265.html). Спочатку запишемо потрібні дані до файлу формату *.csv. При цьому врахуємо, що всі 30 абітурієнтів складали тести ЗНО з української мови та літератури та з іноземної мови. Третім тестом для 12 абітурієнтів була математика, а для інших – географія. Тому для зручності подальшого аналізу перші 12 рядків даних таблиці виокремимо для тих, хто складав тест з математики, а останні 18 – для тих, хто складав тест з географії. Для побудови заданих діаграм використовуємо таку систему команд:

Рис. 4.14 – Приклад графіка для завдання 4

> windows(width = 10, height = 4)

 

> old.par <- par(mfrow=c(1,2))

 

> pie(r1, labels = lbls1,

 

+ edges = 30, radius = 1.1, clockwise

= TRUE, init.angle = 40,

+ density = c(15, 45, 15, 30),

 

+ angle = 80*1:4, col = rainbow(4))

 

> pie(r2, labels = lbls2,

 

+ edges = 30, radius = 1.1, clockwise

= TRUE, init.angle = 40,

+ density = c(15, 45, 15, 30),

 

+ angle = 80*1:4, col = rainbow(4))

 

> par(old.par)

 

Перша команда надає змогу змінити розмір графічного вікна. Це доцільно зробити, тому що нам буде потрібно побудувати дві діаграми (вихідний масив даних розшарований на дві підгрупи). Використовувані за замовченням параметри вікна є не досить зручними для вирішення цього

завдання, оскільки задають квадратне вікно. Тож на рисунку залишиться багато порожнього місця. Результати побудови діаграм наведено на рис. 4.15.

Рис. 4.15 – Результати побудови діаграм для завдання 5

З отриманих даних бачимо, що результати всіх тестів ЗНО для абітурієнтів досліджуваної спеціальності мають приблизно однакову вагу (близько 30%) в їх підсумковій оцінці.

6. Для виконання завдання можна використовувати таку систему команд:

>jpeg(file="vstup.jpg", bg="transparent")

>stripchart(rez, pch = c("$", "*", "@", "%"), col = c("violet", "darkblue", "green", "coral"), xlim = c(30, 200), method = "jitter", main = "Розподіл оцінок",

+ col.main = "brown", font.main = 7, cex.main = 2)

>dev.off()

Перша команда відкриває графічний пристрій для створення jpg файлу. Остання – зачиняє його. Побудований графік показаний на рис. 4.16.

Рис. 4.16 – Приклад побудови діаграми завдання 6

Приклад скрипту

m = matrix (nrow = 3, ncol = 4)

m[1,] = c(4.6, 2.5, 5.1, 1.4) m[2,] = c(4.4, 2.7, 4.9, 1.5) m[3,] = c(4.2, 2.6, 4.7, 1.7)

old.par <- par(mfrow=c(2,2))

barplot(m, beside = TRUE, names.arg = c("2011", "2012", "2013", "2014"), xlab = "Year",

col = c(2,3,4), legend.text = c("A", "B", "C"))

barplot(m, beside = FALSE, names.arg = c("2011", "2012", "2013", "2014"), xlab = "Year",

col = c(5,6,7))

barplot(m, beside = TRUE, names.arg = c("2011", "2012", "2013", "2014"), ylab = "Year",

col = c(8,9,10), horiz = TRUE, density = 25, angle = c(30, 60, 135), border = c(21, 22, 23))

barplot(m, beside = FALSE, names.arg = c("2011", "2012", "2013", "2014"), ylab = "Year",

col = c(11,12,13), horiz = TRUE, density = 16, angle = c(30, 60, 135))

par(old.par)

x1 = rnorm(150, 20, 3)

x2 = runif(150, 10, 30)

x3 = rnorm(50, 25, 2)

old.par <- par(mfrow=c(2,2))

boxplot(c(x1, x2), x3, names = c("x1 and x2", "x3"), border = c ("31", "32"), col = c ("33", "34"))

boxplot(x1, x2, x3, range = 1.5, names = c("x1", "x2", "x3"), notch = TRUE, outline = FALSE,

boxwex = 0.4, border = c ("35", "36", "37"), col = c ("38", "39", "40"), at = c(1, 1.5, 3))

boxplot(x1, x2, x3, range = 0.5, varwidth = TRUE, border = c ("51", "52",

"53"),

col = c ("54", "55", "56"), horizontal = TRUE)

boxplot(x1 + x2, x3, range = 2.5, staplewex = 1, border = c ("57", "58"), col = c ("59", "60"))

par(old.par)

boxplot(x1, c(x2, x3), plot = FALSE)

old.par <- par(mfrow=c(2,2))

curve(2/(exp(x)+exp(-x)), -3, 3, ylab = "f(x)", ylim = c(-1.2, 1.2), col =

"red")

curve(sin(3*x), add = TRUE, col = "maroon", type = "o", cex = 1.5) curve(exp(x)*sin(3*x), -3, 3, ylab = "f(x)", col = "peru", type = "s") curve(2/(exp(x)+exp(-x)), -3, 3, ylab = "f(x)", ylim = c(-1.2, 1.2), col =

"tan", lwd = 3)

curve(cos(x), -5, 5, ylab = "f(x)", ylim = c(-1.2, 1.2), col = "purple", n = 9) par(old.par)

old.par <- par(mfrow=c(2,2))

curve(qnorm, type = "h", col = 101, ylab = "Quantile function", ylim = c(-3,

5))

curve(qunif, type = "l", col = 102, add = TRUE) curve(qexp, type = "p", col = 103, add = TRUE)

curve(dlogis, main = "Density", lwd = 3, col = 104, col.main = 154, xlim = c(-3, 3), ylim = c(0, 0.4))

curve(dnorm, lwd = 3, col = 124, col.main = 164, add = TRUE) y <- function(x) sin(cos(x)*exp(-x/3))

curve(y, -8, 7, n = 2001, col = 106, lwd = 4)

curve(tan, xname = "t", xlim = c(-6, 6), ylim = c(-5, 5), col = "green", main = "curve(tan)", col.main = "darkblue")

abline(h = -4:4, v = -6:6, lty = 3, col = "gray")

par(old.par)

old.par <- par(mfrow=c(2,2))

curve(x + sin(5*x)*exp(-x), xlim = c(-1, 3), col = 71, type = "p", cex = 1.5) abline(a = 0, b = 1, lty = 3, col = 73)

curve((2*x^3 + 3*x^2)/(x^2 - x + 5), xlim = c(-7, 7), col = "maroon", type =

"o")

abline(coef = c(3, 2), lty = 3, col = 74)

curve(atan, xlim = c(-10, 10), col = "tomato", type = "o", cex = 1.5) abline(h = seq(-1.5, 1.5, by = 0.5), v = seq(-8, 8, by = 2), lty = 3, col = 75) x = seq(-2, 2, len = 12)

y = 2*x + 3 + rnorm(12, 0, 1) mod = lm(y~x)

plot(x, y, type = "p", col = 76, cex = 1.5, pch = 2) abline(reg = mod, lty = 3, col = 78)

abline(a = 3, b = 2, lty = 2, col = 80) par(old.par)

GDP <- c(17402, 16800, 16158, 6774, 4624, 3461, 3012, 400, 33256)

lbls <- c("ЄС", "США", "Китай", "Індія", "Японія", "Росія", "Бразилія", "Україна", "Інші")

pct <- round(GDP/sum(GDP)*100, 1)

lbls <- paste(lbls, pct) # add percents to labels lbls <- paste(lbls,"%",sep="") # ad % to labels

pie(GDP, labels = lbls, main="Валовий внутрішній продукт за ППС,

2013",

edges = 30, radius = 0.91, clockwise = TRUE, init.angle = 180, density = c(25, 35, 20, 30, 15, 25, 35, 20, 30),

angle = 60*1:9, col = rainbow(9), col.main = 156)

x <- rweibull(25, 1, 1) xr <- round(x, 1)

stripchart(x, pch = 2, col = 2, xlim = c(-0.2, 2.7)) ; m <- mean(par("usr")[1:2])

text(m, 1.08, "stripchart(x, \"overplot\")", col = 2)

stripchart(xr, pch = 6, col = 3, method = "stack", add = TRUE, at = 1.2, offset = 0.5)

text(m, 1.32, "stripchart(round(x,1), \"stack\")", col = 3)

stripchart(xr, pch = 7, col = 4, method = "jitter", jitter = 0.03, add = TRUE, at = 0.7)

text(m, 0.82, "stripchart(round(x,1), \"jitter\")", col = 4)

m1 = matrix (nrow = 3, ncol = 7)

m1[1,] = c(62.7, 1763, 89.0, 28.9, 81.8, 210.6, 757.9)

m1[2,] = c(65.7, 1686, 105.7, 28.5, 78.0, 203.3, 766.5) m1[3,] = c(64.2, 1560, 93.6, 29.1, 88.2, 230.6, 917)

m2 = matrix (nrow = 3, ncol = 4) m2[1,1:4] = c(100, 100, 100, 100)

m2[2,1:4] = round(m1[2, 1:4]/m1[1,1:4]*100,1) m2[3,1:4] = round(m1[3, 1:4]/m1[1,1:4]*100,1)

barplot(m2, beside = TRUE, names.arg = c("Вугілля", "Хліб", "Тканини", "Чавун"), main = "Динаміка обсягів виробництва",

col = c(2,3,4), ylim = c(0, 125), legend.text = c("2011", "2012", "2013"), col.main = 140)

ma = t(m1[,5:7])

barplot(ma, beside = FALSE, names.arg = c("2011", "2012", "2013"), legend.text = c("М'ясо великої рогатої худоби", "Свинина", "М’ясо

свійської птиці"), xlim = c(0, 1250),

col = c(35,36,37), density = 25, angle = c(30, 60, 135), border = c(21, 22, 23), horiz = TRUE)

x1 = rnorm(75, 12, 2)

x2 = rnorm(120, 12.1, 5)

x3 = rnorm(120, 15, 1)

x4 = runif(75, 8, 16)

stw = c(length(x1), length(x2), length(x3), length(x4))/200

boxplot(x1, x2, x3, x4, horizontal = FALSE, range = 1.2, notch = TRUE, staplewex = stw, col = rainbow(4), names = c("x1", "x2", "x3", "x4"))

boxplot(x1 + x4, c(x1, x4), (x2 +x3)/2, horizontal = TRUE, range = 0.8, col = 5:7, border = 8:10, lwd = 3, varwidth = TRUE, staplewex = 7/25, names = c("x1 + x4", "x1Ux4", "(x2 + x3)/2"))

boxplot(x1 + x4, c(x1, x4), (x2 +x3)/2, plot = FALSE)

curve(2/(exp(x)+exp(-x)), -3, 3, ylab = "f(x)", ylim = c(-1.2, 1.2), col =

"red")

curve(sin(3*x), add = TRUE, col = "maroon", type = "o", cex = 1.5) curve(exp(x)*sin(3*x), -3, 3, ylab = "f(x)", col = "peru", type = "s") curve(2/(exp(x)+exp(-x)), -3, 3, ylab = "f(x)", ylim = c(-1.2, 1.2), col =

"tan", lwd = 3)

curve(cos(x), -5, 5, ylab = "f(x)", ylim = c(-1.2, 1.2), col = "purple", n = 9)

curve(sin(20*x)/cosh(15*x), -0.5, 1.5, ylab = "f(x)", col = 30, type = "S", ylim = c(-0.8, 1))

curve(sin, col = 50, type = "o", cex = 1.5, add = TRUE)

h = c(2, 7, 1, 4, 5) rat = function(x)

{

num = h[1]*x^2 + h[2]*x + h[3] den = h[4]*x + h[5]

num/den

}

curve(rat, -5, 5, col = 75, ylim = c(-4, 10))

abline(a = (h[2]*h[4] - h[1]*h[5])/(h[4]^2), b = h[1]/h[4], lty = 3, col = 76, lwd = 2.5)

abline(v = -h[5]/h[4], lty = 3, col = 76, lwd = 2.5)

rez = read.table("ЗНТУ_2014_МЕВ.csv", sep=";", dec=",", header=TRUE) rez1 = rez[1:12,]

rez2 = rez[13:30,] r1 = colMeans(rez1) r2 = colMeans(rez2)

lbls1 <- c("УМЛ", "Матем", "Ін_мова", "Атест") pct1 <- round(r1/sum(r1)*100, 1)

lbls1 <- paste(lbls1, pct1) # add percents to labels lbls1 <- paste(lbls1,"%",sep="") # ad % to labels

lbls2 <- c("УМЛ", "Геогр", "Ін_мова", "Атест") pct2 <- round(r2/sum(r2)*100, 1)

lbls2 <- paste(lbls2, pct2) # add percents to labels lbls2 <- paste(lbls2,"%",sep="") # ad % to labels

windows(width = 10, height = 4) old.par <- par(mfrow=c(1,2)) pie(r1, labels = lbls1,

edges = 30, radius = 1.1, clockwise = TRUE, init.angle = 40, density = c(15, 45, 15, 30),

angle = 80*1:4, col = rainbow(4)) pie(r2, labels = lbls2,

edges = 30, radius = 1.1, clockwise = TRUE, init.angle = 40, density = c(15, 45, 15, 30),

angle = 80*1:4, col = rainbow(4)) par(old.par)

jpeg(file="vstup.jpg", bg="transparent")

stripchart(rez, pch = c("$", "*", "@", "%"), col = c("violet", "darkblue", "green", "coral"), xlim = c(30, 200),

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]