Як створити гістограму з різними кольорами в 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 14C
3 14C
4 15C
5 15C
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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *