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 

Упражнение 1. Сделать ласточку стройной

В документации на сайте пакета или в шпаргалке выберите подходящие систему координат (функции coord_*) и тему оформления. Координаты должны иметь фиксированное отношение (ratio=1) цены деления для оси y к цене деления x, а тема оформления должна быть с черно-белой (black-and-white) координатной сеткой.

Упражнение 2. Сделать ласточку дохлой (отобразить симметрично оси x).

В документации на сайте или в шпаргалке выберите подходящие систему координат (функции coord_*) и тему оформления. Координаты должны иметь фиксированное отношение (ratio=-1) цены деления для оси y к цене деления x, а тема оформления должна быть (classic) без координатной сетки. Удалить названия осей.

g3 <-  g2 + coord_fixed(ratio=-1)  + theme_classic() + labs(x=NULL, y=NULL)
g3

Упражнение 3. Вдоль стройной ласточки нарисовать красного червяка (функцию синус)

При помощи 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