Это мой первый вопрос о SO, я надеюсь, что кто-то может помочь мне ответить на него.Назначить цвет точки в зависимости от значения столбца data.frame R
Я чтение данных из CSV с R
с data<-read.csv("/data.csv")
и получить что-то вроде:
Group x y size Color
Medium 1 2 2000 yellow
Small -1 2 1000 red
Large 2 -1 4000 green
Other -1 -1 2500 blue
Каждая группа цвет может варьироваться, они назначаются по формуле, когда генерируется файл csv
, но те все возможные цвета (количество групп также может меняться).
Я пытался использовать ggplot()
так:
data<-read.csv("data.csv")
xlim<-max(c(abs(min(data$x)),abs(max(data$x))))
ylim<-max(c(abs(min(data$y)),abs(max(data$y))))
data$Color<-as.character(data$Color)
print(data)
ggplot(data, aes(x = x, y = y, label = Group)) +
geom_point(aes(size = size, colour = Group), show.legend = TRUE) +
scale_color_manual(values=c(data$Color)) +
geom_text(size = 4) +
scale_size(range = c(5,15)) +
scale_x_continuous(name="x", limits=c(xlim*-1-1,xlim+1))+
scale_y_continuous(name="y", limits=c(ylim*-1-1,ylim+1))+
theme_bw()
Все верно для цветов, кроме
- маленького рисуются синим
- Medium рисуется красным
- Другого нарисовано зеленым цветом
- Large нарисовано желтым
Я заметил легенду в правильном порядке Группы в алфавитном порядке (Large, Medium, Other, Small), но цвета остаются в заказе файла csv
.
Вот скриншот сюжета.
Может кто-нибудь сказать мне, что не хватает в моем коде, чтобы исправить это? приветствуются другие подходы к достижению одного и того же результата.
Отлично! не возражаете ли вы добавить окончательный код? Я приму свой ответ :) – gantonioid