Окрашивание точек на диаграмме рассеяния с помощью переменной R - PullRequest
0 голосов
/ 07 декабря 2018

Я провел логистическую регрессию качества вина (набор данных из базы данных UCI).Я пытаюсь создать диаграмму рассеяния с точками, раскрашенными по качеству (0 = низкая, 1 = высокая), и все получилось, но цвета - черный и белый.Белые точки на графике явно бесполезны, поэтому я хотел иметь возможность указать / изменить цвета, но я пробовал много вещей, но ничего не получалось.

Код: glm.fit = glm (качество вина $. ~, Данные = вино, семейство = бином)

step(glm.fit)

glm.fit2=glm(wine$quality~volatile.acidity
+residual.sugar+free.sulfur.dioxide+
density+pH+sulphates+alcohol,
data=wine, family=binomial)

summary(glm.fit2)

plot(wine$sulphates, wine$alcohol, 
xlab="sulphates", ylab="alcohol", 
col=wine$quality)

legend("topright", col=1:2, pch=21, 
legend=c("low quality","high quality"))

Вот график, который я получаю: scatterplot

Это график двух наиболее значимых переменных из glm.Мне все равно, какие цвета, только не белый !!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вот простое базовое решение R.

Предполагается, что у вас есть df, похожий по структуре на этот, с одной двоичной переменной, содержащей только 0 и 1, и еще двумя переменными:

df <- data.frame(
  Var1 = c(sample(500, 100)),
  Var2 = c(rnorm(500, 100)),
  binaryVar = c(sample(0:1, 100, replace = T))
)

, затем вы можете назначить цвета для двоичной переменной, используя оператор ifelse, например:

df$col <- ifelse(binaryVar==0, "red", "blue")

, и, наконец, можете создать свой точечный график, используя df$col, чтобы определить цвета точек данных:

plot(df$Var1, df$Var2, frame=F, col=df$col)
legend("topright",legend=c("Low quality", "High quality"), 
pch=1, col=c("red","blue"), bg="grey")

Результат выглядит так: enter image description here

0 голосов
/ 07 декабря 2018

Как и предполагал NColl, пакет ggplot2 отлично подходит для этого.Попробуйте код ниже, тогда узнайте больше здесь .

library(ggplot2)

ggplot(data = glm.fit2, aes(x = sulphates, y = alcohol, color = quality)) + 
  geom_point()
...