Как создать гистограмму с разными цветами в R

Как создать гистограмму с разными цветами в R

Часто вам может понадобиться создать гистограмму с несколькими разными цветами в R.

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

Пример 1: Гистограмма с разными цветами в базе R

В следующем коде показано, как создать гистограмму только с одним цветом в базе R:

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#create histogram
hist(df$x)

По умолчанию все цвета столбцов на гистограмме одинаковы.

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

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#define histogram break points
hist_breaks <- hist(df$x)$breaks

#define colors to use in histogram based on break points
color_list <- rep('red', length(hist_breaks))
color_list[hist_breaks < 20 ] <- ' blue '
color_list[hist_breaks < 16 ] <- ' purple '

#create histogram with custom colors 
hist(df$x, col=color_list)
гистограмма с разными цветами в R

Вот как работала логика для создания трех цветов:

  • Во-первых, мы указали, что каждая полоса должна быть красной .
  • Затем мы изменили каждый бар с точкой останова менее 20 на синий .
  • Затем мы изменили каждый бар с точкой останова менее 16 на фиолетовый .

Конечным результатом является гистограмма с тремя цветами.

Пример 2: гистограмма с разными цветами в ggplot2

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#view data frame
df

 x
1 12
2 14
3 14
4 15
5 15
6 17
7 19
8 22
9 23
10 23
11 24

Чтобы создать гистограмму с разными цветами для этого фрейма данных, нам нужно сначала создать группирующую переменную для значений с помощью вложенного оператора if else :

#create grouping variable
df$group = ifelse(df$x < 16 , 'C', ifelse(df$x < 20 , 'B', 'A'))

#view updated data frame
df

 x group
1 12 C
2 14 C
3 14 C
4 15 C
5 15 C
6 17 B
7 19 B
8 22 A
9 23 A
10 23 A
11 24 A

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

#create histogram with custom colors
ggplot(df, aes(x, fill=group)) +
 geom_histogram(bins= 6 , color='black') +
 scale_fill_manual(values = c('A' = 'red',
 'B' = 'blue',
 'C' = 'purple'))

Конечным результатом является гистограмма с тремя цветами.

Примечание.Полную документацию по scale_fill_manual() можно найти здесь .

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

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

Как создать гистограмму относительной частоты в R
Как наложить нормальную кривую на гистограмму в R
Как указать разрывы гистограммы в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.