Ми розглянемо базову графіку, яка дозволяє будувати складні графіки (але трохи довше ніж інші способи).
Основний принцип побудови графіків в R: 1. спочатку більш загальні структури; 2. потім більше деталізовані, шар за шаром.
По-перше, команда створення нового графіку.
plot.new()
При створенні нового графіка ми можемо вказати границі (маштаб) за осями, ти їх місце розташування.
plot.new()
plot.window(xlim = c(0,10),ylim = c(0,5))
axis(1)
axis(2)
Команда axis() допускає наступне розширення:
plot.new()
plot.window(xlim = c(0,5),ylim = c(0,5))
axis(1, at = 0:5, labels = c("A","B","C","D","E","F"))
axis(2)
Ще один параметр керує напрямком розташування
plot.new()
plot.window(xlim = c(0,2),ylim = c(0,5))
axis(1, at = 0:2, labels = c("Андрій","Юля","Міша"), las = 2)
axis(2)
points(0:2,c(5,4.5,3))
Тепер змінимо колір і шрифт
Кольори та шрифт регулюються наступними параметрами:
col = "red" ("green", "blue") - колір осей (і відміток)
col.axis = "red" ("green", "blue") - колір позначок
font.axis = - шрифт позначок
1 - normal
2 - bold
3 - italic
4 - italic-bold
plot.new()
plot.window(xlim = c(0,2),ylim = c(0,5))
axis(1, at = 0:2, labels = c("Андрій","Юля","Міша"), las = 2, col.axis = "red", font.axis = 4)
axis(2, col = "blue", font.axis = 2)
points(0:2,c(5,4.5,3))
Підписи до графіка створюються наступною функцією
title(main = "", sub = "", xlab = "", ylab = "")
plot.new()
plot.window(xlim = c(0,2),ylim = c(0,5))
axis(1, at = 0:2, labels = c("Андрій","Юля","Міша"), las = 2, col.axis = "red", font.axis = 4)
axis(2, col = "blue", font.axis = 2)
points(0:2,c(5,4.5,3))
title(main = "Успішність слухачів",
sub = "графік створено 29.10.2017",
xlab = "слухачі",
ylab = "оцінки")
Кожен з цих чотирьох елементів також можна розфарбувати.
font.main
col.main
cex.main
font.sub
col.sub
cex.sub
font.lab
col.lab
cex.lab
Іноді корисно намалювати прямокутник навколо графіка, тоді використовується функція box()
Тепер подивимось як наносити точки, лінії, відрізки.
Точки наносяться за допомогою функції points()
points(x = , y = , pch = int, col = str)
Ще додамо, що колір можна змінювати. Також можна заливати порожні форми 21 - 25 іншим кольором за допомогою параметра bg
plot.new()
plot.window(xlim = c(0,6),ylim = c(0,2))
points(1,1,pch = 21, col = "blue", bg = "grey")
text(1,1.5,"21")
points(2,1,pch = 22, col = "brown", bg = "red")
text(2,1.5,"22")
points(3,1,pch = 23, col = "red", bg = "yellow")
text(3,1.5,"23")
points(4,1,pch = 24, col = "blue", bg = "orange")
text(4,1.5,"24")
points(5,1,pch = 25, col = "green", bg = "yellow")
text(5,1.5,"25")
Тепер розглянемо лінії. Лінії додаються командою:
lines(x, y, lty = str, lwd = num, col = str)
lty - тип лінії: "blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash"
lwd - товщина лінії
Ми вже використовували трохи іншу форму (більш просту)
lines(x, y, type = str, col = str) де
тип - "p" точки, "l" лінії, "b" точки і лінії, "c" порожні точки з'єднані лініями, "o" точки, що перетинаються лініями, "s" та "S" для сходчастих функцій і "h" для прямокутників (як у гістограмі)
Але тепер ми можемо налаштовувати більш точно
plot.new()
plot.window(xlim = c(0,3),ylim = c(0,5))
axis(1, at = 0:3,
labels = c("Андрій","Юля","Міша","Аріна"),
col = "green",
col.axis = "blue", font.axis = 4)
axis(2, col = "green", font.axis = 2)
lines(0:3,c(5,4.5,3,3.5),lty = "solid", lwd = 2, col = "blue")
lines(0:3,c(3,2.5,1,3),lty = "dashed", lwd = 4, col = "green")
lines(0:3,c(2,3.5,4,4.5),lty = "dotdash", lwd = 6, col = "red")
title(main = "Успішність слухачів",
font.main = 4,
col.main = "blue",
cex.main = 1.5,
sub = "графік створено 29.10.2017",
cex.sub = 0.5,
xlab = "слухачі",
ylab = "оцінки",
col.lab = "blue",
font.lab = 2)
Останній графічний елемент, який ми пройдемо сьогодні це відрізок.
segments(x0, y0, x1, y1)
всі інші параметри як у лініях
plot.new()
plot.window(xlim = c(-1,1),ylim = c(-1,1))
axis(1)
axis(2)
segments(0,0,1,1)
Побудуємо розетки:
n <- 7
theta <- seq(0,2*pi,length = n)
x <- sin(theta)
y <- cos(theta)
v1 <- rep(1:n,n)
v2 <- rep(1:n,rep(n,n))
plot.new()
plot.window(xlim = c(-1,1),ylim = c(-1,1),asp = 1)
segments(x[v1],y[v1],x[v2],y[v2],col="blue")
n <- 17
theta <- seq(0,2*pi,length = n)
x <- 3*sin(theta)
y <- 0.5*cos(theta)
v1 <- rep(1:n,n)
v2 <- rep(1:n,rep(n,n))
plot.new()
plot.window(xlim = c(-2,2),ylim = c(-3,3),asp = 1)
segments(x[v1],y[v1],y[v2],x[v2],col="red")
Щоб отримати всі можливі кольори потрібно виконати команду
colors()
## [1] "white" "aliceblue" "antiquewhite"
## [4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
## [7] "antiquewhite4" "aquamarine" "aquamarine1"
## [10] "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2"
## [16] "azure3" "azure4" "beige"
## [19] "bisque" "bisque1" "bisque2"
## [22] "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1"
## [28] "blue2" "blue3" "blue4"
## [31] "blueviolet" "brown" "brown1"
## [34] "brown2" "brown3" "brown4"
## [37] "burlywood" "burlywood1" "burlywood2"
## [40] "burlywood3" "burlywood4" "cadetblue"
## [43] "cadetblue1" "cadetblue2" "cadetblue3"
## [46] "cadetblue4" "chartreuse" "chartreuse1"
## [49] "chartreuse2" "chartreuse3" "chartreuse4"
## [52] "chocolate" "chocolate1" "chocolate2"
## [55] "chocolate3" "chocolate4" "coral"
## [58] "coral1" "coral2" "coral3"
## [61] "coral4" "cornflowerblue" "cornsilk"
## [64] "cornsilk1" "cornsilk2" "cornsilk3"
## [67] "cornsilk4" "cyan" "cyan1"
## [70] "cyan2" "cyan3" "cyan4"
## [73] "darkblue" "darkcyan" "darkgoldenrod"
## [76] "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3"
## [79] "darkgoldenrod4" "darkgray" "darkgreen"
## [82] "darkgrey" "darkkhaki" "darkmagenta"
## [85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2"
## [88] "darkolivegreen3" "darkolivegreen4" "darkorange"
## [91] "darkorange1" "darkorange2" "darkorange3"
## [94] "darkorange4" "darkorchid" "darkorchid1"
## [97] "darkorchid2" "darkorchid3" "darkorchid4"
## [100] "darkred" "darksalmon" "darkseagreen"
## [103] "darkseagreen1" "darkseagreen2" "darkseagreen3"
## [106] "darkseagreen4" "darkslateblue" "darkslategray"
## [109] "darkslategray1" "darkslategray2" "darkslategray3"
## [112] "darkslategray4" "darkslategrey" "darkturquoise"
## [115] "darkviolet" "deeppink" "deeppink1"
## [118] "deeppink2" "deeppink3" "deeppink4"
## [121] "deepskyblue" "deepskyblue1" "deepskyblue2"
## [124] "deepskyblue3" "deepskyblue4" "dimgray"
## [127] "dimgrey" "dodgerblue" "dodgerblue1"
## [130] "dodgerblue2" "dodgerblue3" "dodgerblue4"
## [133] "firebrick" "firebrick1" "firebrick2"
## [136] "firebrick3" "firebrick4" "floralwhite"
## [139] "forestgreen" "gainsboro" "ghostwhite"
## [142] "gold" "gold1" "gold2"
## [145] "gold3" "gold4" "goldenrod"
## [148] "goldenrod1" "goldenrod2" "goldenrod3"
## [151] "goldenrod4" "gray" "gray0"
## [154] "gray1" "gray2" "gray3"
## [157] "gray4" "gray5" "gray6"
## [160] "gray7" "gray8" "gray9"
## [163] "gray10" "gray11" "gray12"
## [166] "gray13" "gray14" "gray15"
## [169] "gray16" "gray17" "gray18"
## [172] "gray19" "gray20" "gray21"
## [175] "gray22" "gray23" "gray24"
## [178] "gray25" "gray26" "gray27"
## [181] "gray28" "gray29" "gray30"
## [184] "gray31" "gray32" "gray33"
## [187] "gray34" "gray35" "gray36"
## [190] "gray37" "gray38" "gray39"
## [193] "gray40" "gray41" "gray42"
## [196] "gray43" "gray44" "gray45"
## [199] "gray46" "gray47" "gray48"
## [202] "gray49" "gray50" "gray51"
## [205] "gray52" "gray53" "gray54"
## [208] "gray55" "gray56" "gray57"
## [211] "gray58" "gray59" "gray60"
## [214] "gray61" "gray62" "gray63"
## [217] "gray64" "gray65" "gray66"
## [220] "gray67" "gray68" "gray69"
## [223] "gray70" "gray71" "gray72"
## [226] "gray73" "gray74" "gray75"
## [229] "gray76" "gray77" "gray78"
## [232] "gray79" "gray80" "gray81"
## [235] "gray82" "gray83" "gray84"
## [238] "gray85" "gray86" "gray87"
## [241] "gray88" "gray89" "gray90"
## [244] "gray91" "gray92" "gray93"
## [247] "gray94" "gray95" "gray96"
## [250] "gray97" "gray98" "gray99"
## [253] "gray100" "green" "green1"
## [256] "green2" "green3" "green4"
## [259] "greenyellow" "grey" "grey0"
## [262] "grey1" "grey2" "grey3"
## [265] "grey4" "grey5" "grey6"
## [268] "grey7" "grey8" "grey9"
## [271] "grey10" "grey11" "grey12"
## [274] "grey13" "grey14" "grey15"
## [277] "grey16" "grey17" "grey18"
## [280] "grey19" "grey20" "grey21"
## [283] "grey22" "grey23" "grey24"
## [286] "grey25" "grey26" "grey27"
## [289] "grey28" "grey29" "grey30"
## [292] "grey31" "grey32" "grey33"
## [295] "grey34" "grey35" "grey36"
## [298] "grey37" "grey38" "grey39"
## [301] "grey40" "grey41" "grey42"
## [304] "grey43" "grey44" "grey45"
## [307] "grey46" "grey47" "grey48"
## [310] "grey49" "grey50" "grey51"
## [313] "grey52" "grey53" "grey54"
## [316] "grey55" "grey56" "grey57"
## [319] "grey58" "grey59" "grey60"
## [322] "grey61" "grey62" "grey63"
## [325] "grey64" "grey65" "grey66"
## [328] "grey67" "grey68" "grey69"
## [331] "grey70" "grey71" "grey72"
## [334] "grey73" "grey74" "grey75"
## [337] "grey76" "grey77" "grey78"
## [340] "grey79" "grey80" "grey81"
## [343] "grey82" "grey83" "grey84"
## [346] "grey85" "grey86" "grey87"
## [349] "grey88" "grey89" "grey90"
## [352] "grey91" "grey92" "grey93"
## [355] "grey94" "grey95" "grey96"
## [358] "grey97" "grey98" "grey99"
## [361] "grey100" "honeydew" "honeydew1"
## [364] "honeydew2" "honeydew3" "honeydew4"
## [367] "hotpink" "hotpink1" "hotpink2"
## [370] "hotpink3" "hotpink4" "indianred"
## [373] "indianred1" "indianred2" "indianred3"
## [376] "indianred4" "ivory" "ivory1"
## [379] "ivory2" "ivory3" "ivory4"
## [382] "khaki" "khaki1" "khaki2"
## [385] "khaki3" "khaki4" "lavender"
## [388] "lavenderblush" "lavenderblush1" "lavenderblush2"
## [391] "lavenderblush3" "lavenderblush4" "lawngreen"
## [394] "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
## [397] "lemonchiffon3" "lemonchiffon4" "lightblue"
## [400] "lightblue1" "lightblue2" "lightblue3"
## [403] "lightblue4" "lightcoral" "lightcyan"
## [406] "lightcyan1" "lightcyan2" "lightcyan3"
## [409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
## [412] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4"
## [415] "lightgoldenrodyellow" "lightgray" "lightgreen"
## [418] "lightgrey" "lightpink" "lightpink1"
## [421] "lightpink2" "lightpink3" "lightpink4"
## [424] "lightsalmon" "lightsalmon1" "lightsalmon2"
## [427] "lightsalmon3" "lightsalmon4" "lightseagreen"
## [430] "lightskyblue" "lightskyblue1" "lightskyblue2"
## [433] "lightskyblue3" "lightskyblue4" "lightslateblue"
## [436] "lightslategray" "lightslategrey" "lightsteelblue"
## [439] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [442] "lightsteelblue4" "lightyellow" "lightyellow1"
## [445] "lightyellow2" "lightyellow3" "lightyellow4"
## [448] "limegreen" "linen" "magenta"
## [451] "magenta1" "magenta2" "magenta3"
## [454] "magenta4" "maroon" "maroon1"
## [457] "maroon2" "maroon3" "maroon4"
## [460] "mediumaquamarine" "mediumblue" "mediumorchid"
## [463] "mediumorchid1" "mediumorchid2" "mediumorchid3"
## [466] "mediumorchid4" "mediumpurple" "mediumpurple1"
## [469] "mediumpurple2" "mediumpurple3" "mediumpurple4"
## [472] "mediumseagreen" "mediumslateblue" "mediumspringgreen"
## [475] "mediumturquoise" "mediumvioletred" "midnightblue"
## [478] "mintcream" "mistyrose" "mistyrose1"
## [481] "mistyrose2" "mistyrose3" "mistyrose4"
## [484] "moccasin" "navajowhite" "navajowhite1"
## [487] "navajowhite2" "navajowhite3" "navajowhite4"
## [490] "navy" "navyblue" "oldlace"
## [493] "olivedrab" "olivedrab1" "olivedrab2"
## [496] "olivedrab3" "olivedrab4" "orange"
## [499] "orange1" "orange2" "orange3"
## [502] "orange4" "orangered" "orangered1"
## [505] "orangered2" "orangered3" "orangered4"
## [508] "orchid" "orchid1" "orchid2"
## [511] "orchid3" "orchid4" "palegoldenrod"
## [514] "palegreen" "palegreen1" "palegreen2"
## [517] "palegreen3" "palegreen4" "paleturquoise"
## [520] "paleturquoise1" "paleturquoise2" "paleturquoise3"
## [523] "paleturquoise4" "palevioletred" "palevioletred1"
## [526] "palevioletred2" "palevioletred3" "palevioletred4"
## [529] "papayawhip" "peachpuff" "peachpuff1"
## [532] "peachpuff2" "peachpuff3" "peachpuff4"
## [535] "peru" "pink" "pink1"
## [538] "pink2" "pink3" "pink4"
## [541] "plum" "plum1" "plum2"
## [544] "plum3" "plum4" "powderblue"
## [547] "purple" "purple1" "purple2"
## [550] "purple3" "purple4" "red"
## [553] "red1" "red2" "red3"
## [556] "red4" "rosybrown" "rosybrown1"
## [559] "rosybrown2" "rosybrown3" "rosybrown4"
## [562] "royalblue" "royalblue1" "royalblue2"
## [565] "royalblue3" "royalblue4" "saddlebrown"
## [568] "salmon" "salmon1" "salmon2"
## [571] "salmon3" "salmon4" "sandybrown"
## [574] "seagreen" "seagreen1" "seagreen2"
## [577] "seagreen3" "seagreen4" "seashell"
## [580] "seashell1" "seashell2" "seashell3"
## [583] "seashell4" "sienna" "sienna1"
## [586] "sienna2" "sienna3" "sienna4"
## [589] "skyblue" "skyblue1" "skyblue2"
## [592] "skyblue3" "skyblue4" "slateblue"
## [595] "slateblue1" "slateblue2" "slateblue3"
## [598] "slateblue4" "slategray" "slategray1"
## [601] "slategray2" "slategray3" "slategray4"
## [604] "slategrey" "snow" "snow1"
## [607] "snow2" "snow3" "snow4"
## [610] "springgreen" "springgreen1" "springgreen2"
## [613] "springgreen3" "springgreen4" "steelblue"
## [616] "steelblue1" "steelblue2" "steelblue3"
## [619] "steelblue4" "tan" "tan1"
## [622] "tan2" "tan3" "tan4"
## [625] "thistle" "thistle1" "thistle2"
## [628] "thistle3" "thistle4" "tomato"
## [631] "tomato1" "tomato2" "tomato3"
## [634] "tomato4" "turquoise" "turquoise1"
## [637] "turquoise2" "turquoise3" "turquoise4"
## [640] "violet" "violetred" "violetred1"
## [643] "violetred2" "violetred3" "violetred4"
## [646] "wheat" "wheat1" "wheat2"
## [649] "wheat3" "wheat4" "whitesmoke"
## [652] "yellow" "yellow1" "yellow2"
## [655] "yellow3" "yellow4" "yellowgreen"
library(MASS)
head(Animals)
## body brain
## Mountain beaver 1.35 8.1
## Cow 465.00 423.0
## Grey wolf 36.33 119.5
## Goat 27.66 115.0
## Guinea pig 1.04 5.5
## Dipliodocus 11700.00 50.0
head(mammals)
## body brain
## Arctic fox 3.385 44.5
## Owl monkey 0.480 15.5
## Mountain beaver 1.350 8.1
## Cow 465.000 423.0
## Grey wolf 36.330 119.5
## Goat 27.660 115.0
mammals_names <- read.csv("D:/Ignat/MyCode/R/BrovaryLectures/Data/mammals_names.csv",header = FALSE)
df <- mammals
df$name <- as.character(mammals_names$V1)
names(df) <- c("body","brain","name")
Перша візуалізація
plot.new()
plot.window(xlim = range(df$body),ylim = range(df$brain))
axis(1)
axis(2)
points(df$body,df$brain)
plot.new()
plot.window(xlim = c(0,600),ylim = c(0,800))
axis(1)
axis(2)
points(df$body,df$brain)
plot.new()
plot.window(xlim = c(0,600),ylim = c(0,800))
axis(1)
axis(2)
points(df$body,df$brain)
text(df$body,df$brain + 30,df$name)
plot.new()
plot.window(xlim = c(100,600),ylim = c(150,700))
axis(1)
axis(2)
points(df$body,df$brain,col = "blue")
text(df$body,df$brain + 20,df$name, cex = 0.7)
Додати підписи до вашого графу.Зробити імена тварин червоними.
Побудувати графік де імена тварин будуть розташовані вздовж осі х (вертикально) а по осі y буде вага тіла або вага мозку.
Побудувати графік для маленьких тварин.
plot.new()
plot.window(xlim = range(faithful$eruptions),ylim = range(faithful$waiting))
axis(1)
axis(2)
points(faithful, col = "red", pch = 16)