Как рисовать стрелки в 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 ')))
Не стесняйтесь изменять значение в функции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