Как закрасить область в 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 ') 

ggplot2 серая зона

Область, которую мы указали в функции 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 ') 

несколько заштрихованных областей в ggplot2

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

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

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

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

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

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