这里以散点图图为例
p <- ggplot(data,aes(x,y))+
geom_point(aes(color=group),shape=19,size=3.5) #设置点的颜色,大小和形状
如果这里直接用aes(color=group),那么这个group分的时候是根据你的data里面的是能够成为因子的数据进行分组的,而有时因子的水平的排列顺序并不是在表格中看到的顺序,例如
在表格中分组信息排序是S1,S2,...,S10,S11,S12
但实际因子水平是S1,S10,S11,S12,S2,....
可以采用以下代码查看分组信息的水平(level)
factor(data$group) #data为数据,group为数据的分组信息
之前想到的解决方法是下面这个,但是我自己也觉得这个方法麻烦,评论区uu也有这样的想法,这里更新一下,多一步代码的新的解决办法!!!!
(旧方法)解决方法:建一个factor(因子),规定level(水平),然后把这个factor作为颜色的映射
data$group <-factor(data$group,level=c("S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12"))
p <- ggplot(data,aes(x,y))+
geom_point(aes(color=group),shape=19,size=3.5)
(New version!)思路一致,就是把数据中的横坐标赋值给level
这里显示的是data:
level <- data[,1] #就多出这一步,不用手动打出来,直接赋值
data$x <- factor(data$x,level = level)
p <- ggplot(data,aes(x,y))+
geom_point()