Как закрасить область в ggplot2 (с примерами)
Вы можете использовать следующий базовый синтаксис для затенения определенной области графика в ggplot2:
ggplot(df, aes(x=x, y=y)) + geom_point() + annotate(' rect ', xmin= 3 , xmax= 5 , ymin= 3 , ymax= 7 , alpha= .2 , fill=' red ')
В этом конкретном примере затеняется область между значениями x 3 и 5 и значениями y 3 и 7.
Аргумент fill управляет цветом затененной области, а аргумент альфа управляет прозрачностью цвета.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: заштриховать область в ggplot2
Предположим, у нас есть следующий кадр данных в R, который содержит информацию о набранных очках и подборах, собранных различными баскетболистами:
#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
Мы можем использовать следующий код, чтобы создать диаграмму рассеяния и заштриховать область между значениями x 3 и 5 и значениями y 3 и 7 светло-красным прямоугольником:
library (ggplot2) #create scatter plot with shaded area ggplot(df, aes(x=x, y=y)) + geom_point() + annotate(' rect ', xmin= 3 , xmax= 5 , ymin= 3 , ymax= 7 , alpha= .2 , fill=' red ')
Область, которую мы указали в функции annotate(), заштрихована светло-красным прямоугольником.
Обратите внимание, что значение аргумента альфа находится в диапазоне от 0 до 1, причем более низкие значения указывают на большую прозрачность.
Например, если мы изменим значение альфа на 0,5, цвет заштрихованной области станет темнее:
library (ggplot2) #create scatter plot with shaded area ggplot(df, aes(x=x, y=y)) + geom_point() + annotate(' rect ', xmin= 3 , xmax= 5 , ymin= 3 , ymax= 7 , alpha= .5 , fill=' red ')
Также обратите внимание, что вы можете использовать функцию annotate() несколько раз для создания нескольких затененных областей на графике:
library (ggplot2) #create scatter plot with two shaded areas ggplot(df, aes(x=x, y=y)) + geom_point() + annotate(' rect ', xmin= 3 , xmax= 5 , ymin= 3 , ymax= 7 , alpha= .5 , fill=' red ')
Не стесняйтесь экспериментировать с аргументами функции annotate() , чтобы создать именно то затенение, которое вы хотите на своем графике.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как добавить текст на графики ggplot2
Как удалить линии сетки в ggplot2
Как изменить метки оси X в ggplot2