Цветовые точки на диаграмме рассеяния на основе третьей переменной в R - PullRequest
0 голосов
/ 06 июня 2018

В настоящее время я работаю над фрагментом кода, где я строю две переменные друг против друга.Однако мои данные состоят из еще одной переменной, которую я хотел бы использовать, чтобы закрасить точки на диаграмме рассеяния и отобразить легенду для этой третьей переменной.Вот (упрощенный) пример фрейма данных:

df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = rnorm(N))

Я просто попробовал этот (упрощенный) код, чтобы прикрепить цвет к связанным точкам:

plot(df$x1,df$x2, col=df$x3)

Однако это непохоже на работу.Буду благодарен за полезные предложения.Я хотел бы иметь что-то вроде этого сюжета (взято из R-блогеров):

This is what I imagined it to look like

ура

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Что-то в этом роде?

N=5
df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = rnorm(N))%>%
  mutate(col=Hmisc::cut2(x3,g=3))
ggplot(df,aes(x=x1,y=x2,col=col))+geom_point()
0 голосов
/ 06 июня 2018

Вам необходимо использовать положительное значение для 'col'.

Быстрое исправление: использовать x3 = abs(rnorm(N))

Для большего контроля: использовать реальные цифры вместо цифр.Строки типа 'red', 'blue' будут работать .Или вы можете использовать палитры, такие как colors <- rainbow(10), которые дадут вам расширенный набор цветов, которые вы можете назначать в зависимости от того, что вы хотите

пример:

df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = sample(rainbow(5),N,replace=T) )
plot(x=df$x1, y=df$x2, col=df$x3, pch=19)

edit:

Вы также можете использовать

rgb(red, green, blue, alpha, maxColorValue = 1)

после изменения масштаба, чтобы иметь контроль над тем, на какой цвет они будут отображаться в зависимости от их значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...