Используйте разные цвета/формы для диаграммы рассеяния с двумя группами в R

Опубликовано: 9 Января, 2023

В этой статье мы рассмотрим различные подходы к цветам/формам для диаграмм рассеяния с двумя группами в языке программирования R.

График в R можно использовать для визуального анализа данных. Библиотека ggplot2 в R используется для создания визуализации данных. Пакет можно скачать и установить в рабочее пространство с помощью следующей команды:

install.packages("ggplot2")

Фрейм данных может использоваться для хранения организованных табличных данных, расположенных в строках и столбцах. Данные столбца могут быть сгруппированы. Затем точки данных можно классифицировать по сегментам аргументов на основе значений, содержащихся в этих группах.

Объект ggplot можно использовать для создания объекта графика. Он также принимает столбцы фрейма данных для построения и аргументирует эстетические сопоставления, где в столбцах фрейма данных можно отображать такие атрибуты, как цвет, размер и форма.

Метод имеет следующий синтаксис:

ggplot(data , aes = ) 

Arguments : 

  • data – The data to plot
  • aes – The aesthetic mappings to use 

К объекту ggplot можно добавить метод geom_point(), чтобы отображать данные в виде точек, представляющих значения данных.

Использование функции geom_point() для окрашивания точек, соответствующих различным группам

Параметр цвета можно добавить к эстетическим отображениям объекта ggplot, чтобы придать цвета значениям точек данных. Параметр цвета может быть назначен сгруппированному столбцу фрейма данных, который по умолчанию назначает разные цвета значениям, принадлежащим к разным группам.

ggplot(data, aes (...,colour = ))

R




# installing the reqd library
library("ggplot2")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c("g1","g2","g1","g1",
           "g2","g1","g2","g2"),
  col2 = 1:8,
  col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
 
# plotting the col1 and col2 of data frame
# and assigning colors based on col1
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point()

Выход

[1] "Data Frame"
> print(data_frame)
  col1 col2 col3
1   g1    1    A
2   g2    2    B
3   g1    3    C
4   g1    4    D
5   g2    5    E
6   g1    6    F
7   g2    7    G
8   g2    8    H

Изменение цвета нанесенных точек

Чтобы обеспечить настраиваемые цвета для точек данных, можно использовать метод пакета ggplot2, scale_color_manual. Этот метод можно использовать для получения как шестнадцатеричного, так и строкового вектора значений цвета. Затем вектор присваивается параметру values этого метода. Длина вектора должна быть эквивалентна количеству групп. Затем метод назначает разные цвета в соответствии с сгруппированным столбцом фрейма данных.

scale_color_manual(values = col-vec)

Arguments : 

  • col-vec – The color vector

R




# installing the reqd library
library("ggplot2")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c("g1","g2","g1","g1",
           "g2","g1","g2","g2"),
  col2 = 1:8,
  col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
 
# assigning colors to different grouped
# points
cols <- c("blue","orange")
 
# plotting the col1 and col2 of data frame
# and assigning colors based on col1
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point()+
 
  # assigning customised colours to the plot
  scale_color_manual(values = cols)

Выход

[1] "Data Frame"
> print(data_frame)
  col1 col2 col3
1   g1    1    A
2   g2    2    B
3   g1    3    C
4   g1    4    D
5   g2    5    E
6   g1    6    F
7   g2    7    G
8   g2    8    H

Изменение формы нанесенных точек

Точкам данных на графике можно присвоить различные формы. По умолчанию окружности строятся в указанных точках. Если мы хотим настроить форму, значение номера формы можно указать в методе geom_point() в качестве аргумента формы. Например, фигура № 15 используется для построения квадратов, а фигура № 17 — треугольников.

geom_point(shape = )

R




# installing the reqd library
library("ggplot2")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c("g1","g2","g1","g1",
           "g2","g1","g2","g2"),
  col2 = 1:8,
  col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
 
# assigning colors to different grouped
# points
cols <- c("blue","orange")
 
# plotting the col1 and col2 of data frame
# and assigning square based shape
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point(shape = 15)

Выход

[1] "Data Frame"
> print(data_frame)
  col1 col2 col3
1   g1    1    A
2   g2    2    B
3   g1    3    C
4   g1    4    D
5   g2    5    E
6   g1    6    F
7   g2    7    G
8   g2    8    H

Назначение фигур на основе групп нанесенных точек

Если мы хотим отобразить группы в разных формах и цветах, мы можем указать и использовать оба параметра в эстетических сопоставлениях объекта ggplot. Форма и цвет могут быть назначены сгруппированному столбцу фрейма данных. В приведенном ниже фрагменте кода кружки оранжевого цвета назначаются группе «g1», а треугольники синего цвета — группе «g2».

R




# installing the reqd library
library("ggplot2")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c("g1","g2","g1","g1",
           "g2","g1","g2","g2"),
  col2 = 1:8,
  col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
 
# assigning colors to different grouped points
cols <- c("blue","orange")
 
# plotting the col1 and col2 of data frame and
# assigning square based shape
ggplot(data_frame,aes(col1,col2,colour=col1,shape=col1))+
  geom_point()

Выход

[1] "Data Frame"
> print(data_frame)
  col1 col2 col3
1   g1    1    A
2   g2    2    B
3   g1    3    C
4   g1    4    D
5   g2    5    E
6   g1    6    F
7   g2    7    G
8   g2    8    H

Однако, если мы не назначаем параметр цвета точкам, принадлежащим к разным группам, то разным точкам данных назначаются только разные фигуры черного цвета.

R




# installing the reqd library
library("ggplot2")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c("g1","g2","g1","g1",
           "g2","g1","g2","g2"),
  col2 = 1:8,
  col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
 
# assigning colors to different grouped
# points
cols <- c("blue","orange")
 
# plotting the col1 and col2 of data frame
# and assigning square based shape
ggplot(data_frame,aes(col1,col2,shape=col1))+
  geom_point()

Выход

[1] "Data Frame"
> print(data_frame)
  col1 col2 col3
1   g1    1    A
2   g2    2    B
3   g1    3    C
4   g1    4    D
5   g2    5    E
6   g1    6    F
7   g2    7    G
8   g2    8    H