Как разделить диаграмму рассеяния разными цветами по группам в парах.panels() в R

#r #plot

#r #график

Вопрос:

Я пытаюсь нарисовать парный график, используя pairs.panels() в R. И разделите диаграмму рассеяния на разные группы с разными цветами, чтобы она выглядела следующим образом:

введите описание изображения здесь

Вот моя первая попытка:

 n = 1000
kindness <- rnorm(n)
beauty <- rnorm(n)
score <- kindness   beauty
c50 <- quantile(score, .50)
marriage <- ifelse(score>=c50, 1, 0)

df <- data.frame(marriage, beauty, kindness)
pairs.panels(df, digit = 3)
 

Но это приводит к следующему:

введите описание изображения здесь

Кто-нибудь может помочь с этой проблемой разделения цвета диаграммы рассеяния внутри pairs.panels() ? Спасибо.

Ответ №1:

Вы можете настроить цвет фона точек с помощью опции «bg», если сначала измените «форму» точки (pch; например, см. https://www.datanovia.com/en/blog/pch-in-r-best-tips /):

 library(psych)
n = 1000
kindness <- rnorm(n)
beauty <- rnorm(n)
score <- kindness   beauty
c50 <- quantile(score, .50)
marriage <- ifelse(score>=c50, 0, 1)
df <- data.frame(marriage, beauty, kindness)

pairs.panels(df, digits = 3, pch = 21,
             bg=c("red","purple")[factor(df$marriage)])

 

пример_1.png

Или вы можете использовать цветовую палитру, такую как viridis или RColorBrewer, например

 pairs.panels(df, digits = 3, pch = 21,
             bg=viridis::viridis(2)[factor(df$marriage)])
 

пример_2.png