library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.2.4
Нужно будет внести в рисунок мелкие исправления.
Вот задаем по точкам фигуру
myfigure <- matrix( c( c(-5, 4), c(-7, 4), c(-9, 6),c(-11,6),c(-12,5), + c(-14,5),c(-12,4),c(-14,3),c(-12,3),c(-11,2),c(-10,2),c(-9, 1), + c(-9,0),c(-8,-2),c(0,-3),c(3,-2),c(19,-2),c(4,0),c(19,4),c(4,2), + c(2,3),c(6,9),c(10,11),c(3,11),c(1,10), c(-5, 4)) ,nrow=2)
mypoint <- c(-10.5, 4.5)
dim(myfigure)
## [1] 2 26
rownames(myfigure) <- c("x","y")
myfigure.df <- as.data.frame(t(myfigure))
str(myfigure.df)
## 'data.frame': 26 obs. of 2 variables:
## $ x: num -5 -7 -9 -11 -12 -14 -12 -14 -12 -11 ...
## $ y: num 4 4 6 6 5 5 4 3 3 2 ...
И рисуем выводим как многоугольник (polygon) при помощи функций пакета gglot2
g0 <- ggplot(data = myfigure.df, aes(x=x,y=y)) + geom_polygon(color="dark blue",fill="cyan")
g0
Выводим вместе с глазом
g1 <- g0 + geom_point(aes(x=mypoint[1],y=mypoint[2]),color="black",fill="yellow",shape=24,size=2.5)
g1
В документации на сайте пакета или в шпаргалке выберите подходящие систему координат (функции coord_*) и тему оформления. Координаты должны иметь фиксированное отношение (ratio=1) цены деления для оси y к цене деления x, а тема оформления должна быть с черно-белой (black-and-white) координатной сеткой.
В документации на сайте или в шпаргалке выберите подходящие систему координат (функции coord_*) и тему оформления. Координаты должны иметь фиксированное отношение (ratio=-1) цены деления для оси y к цене деления x, а тема оформления должна быть (classic) без координатной сетки. Удалить названия осей.
g3 <- g2 + coord_fixed(ratio=-1) + theme_classic() + labs(x=NULL, y=NULL)
g3
При помощи stat_function() добавить график функции 5*sin(x)-8. Добавить название к графику.
g4 <- g2 +stat_function(fun = function (x) 5*sin(x)-8, colour="red") + ggtitle("стройная ласточка и червяк")
g4
Если функция, график которой мы строим имеет более одного аргумента, то при вычислении таблицы значений при помощи stat_function() измененяется только первый аргумент, а остальные можно задать при помощи списка (list), содержащего имена и значения этих аргументов и присвоенного параметру args. Вот слегка изменный ответ к третьему упражнению.
worm_function <-
function (x,a,b,c)
a*sin(x/c)-b
g5 <- g2 +stat_function(fun = worm_function, colour="red", args = list(a=5,b=8,c=2)) +
ggtitle("стройная ласточка и червяк")
g5