Как рисовать стрелки в ggplot2 (с примерами)


Вы можете использовать следующий базовый синтаксис для рисования стрелки на графике в ggplot2:

 library (ggplot2)

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( 0.5 , ' cm ')))

Вот что делает каждый аргумент в функции geom_segment() :

  • x : значение x, с которого начинается
  • y : значение y, с которого начинается
  • xend : значение x, на котором заканчивается
  • yend : значение y, на котором заканчивается
  • стрелка : длина кончика стрелки.

В следующем примере показано, как на практике нарисовать стрелку с помощью ggplot2.

Пример: рисование стрелок в ggplot2

Предположим, у нас есть следующая база данных, содержащая информацию о количестве набранных очков и подборов, собранных различными баскетболистами:

 #create data frame
df <- data. frame (points=c(3, 3, 5, 6, 7, 8, 9, 9, 8, 5),
                 rebounds=c(2, 6, 5, 5, 8, 5, 9, 9, 8, 6))

#view data frame
df

   rebound points
1 3 2
2 3 6
3 5 5
4 6 5
5 7 8
6 8 5
7 9 9
8 9 9
9 8 8
10 5 6

Мы можем использовать следующий синтаксис, чтобы создать диаграмму рассеяния в ggplot2 и добавить стрелку в определенном месте на графике:

 library (ggplot2)

#create scatterplot and add arrow
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( .5 , ' cm '))) 

нарисовать стрелку в ggplot2

Не стесняйтесь изменять значение в функцииarrow() , чтобы увеличить или уменьшить размер стрелки.

Например, следующий код показывает, как увеличить размер:

 library (ggplot2)

#create scatterplot and add arrow with increased arrow head size
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( 2 , ' cm '))) 

Вы также можете использовать аргументы color и lwd , чтобы изменить цвет и толщину линии стрелки соответственно:

 library (ggplot2)

#create scatterplot and add customized arrow
ggplot(df, aes(x=points, y=rebounds)) +
  geom_point() +
  geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( .5 , ' cm ')),
               color=' red ', lwd= 3 ) 

Не стесняйтесь экспериментировать с различными аргументами функции geom_segment() , чтобы создать стрелку, которая будет выглядеть именно так, как вы хотите.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как удалить линии сетки в ggplot2
Как заштриховать область в ggplot2
Как изменить метки оси X в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *