Построение точек с цветом и формой на основе переменных данных
Я пытаюсь сделать график рассеяния с цветами каждой точки, соответствующей одной переменной, и формой каждой точки, соответствующей другой переменной.
Вот некоторые примеры данных и код, который я использовал для создания второго графика:
Example data:(of 3 points)
X Y att1 att2
.5 .5 1 A
.24 .8 3 B
.6 .7 5 C
code:(for image2)
> plot(X,Y, col=statc[att2], pch = 15)
> legend("right", statv, fill=statc)
Where:
> statv
[1] "A" "B" "C"
> statc
[1] "red" "blue" "orange"
Я сделал это индивидуально, но не знаю, как это сделать. Вот два графика:
1 ![введите описание изображения здесь]()
2 ![введите описание изображения здесь]()
Например: Я хочу, чтобы цвета применялись к точкам с одним и тем же att1 и фигурами, применяемыми к точкам с одинаковым att2
Ответы
Ответ 1
Один из доменов, где ggplot2
превосходит по сравнению с другими графическими строками системы R, отображает параметры графика в переменные данных (через механизм эстетики)
library(ggplot2)
dat <- data.frame(X =runif(20),
Y =runif(20),
att1 = gl(5,20/5),
att2 =gl(3,20/3))
ggplot(dat,aes(x=X,y=Y,color=att1,shape=att2)) +
geom_point(size=5)
![enter image description here]()
Вы также можете сделать это на базовом графике, но вы должны генерировать вручную легенду...
plot(dat$X,dat$Y,pch=as.integer(dat$att1),col=as.integer(dat$att1))
![enter image description here]()
Ответ 2
Это то, что вы хотите? [df - ваши данные отформатированы, как указано выше.]
library(ggplot2)
ggplot(df) + geom_point(aes(x=X,y=Y,color=factor(att1),shape=att2),size=5)
Производит это с вашими данными:
![]()