【发布时间】:2020-06-14 18:38:35
【问题描述】:
因此使用 ggplot 命令通过箭头样式创建了载荷图。为了使绘图更容易,我在我的 rr.pr$rotation 代码的数据框中添加了一个带有颜色的列,以便它根据我指定的颜色绘制这些箭头。与箭头匹配的颜色很重要,这就是我这样做的原因。我现在无法添加图例,因为 ggplot 没有添加图例。 有没有办法添加一个或者我必须对数据框做些什么?
我正在考虑手动添加颜色,但我卡住了。
绿色代表硫酸化,橙色代表唾液酸化,棕色代表中性。我希望传奇能够证明这一点。
代码如下:
数据框
rrload<-data.frame(rr.pr$rotation[c(2,15,17,24,52),c(1:5)])
rrload$class<-c('orange','springgreen3','bisque3','bisque3','bisque3')
rrload1<-rrload[,c(1:5)]
rrload1<-as.numeric(as.matrix(rrload1))
rrload1<-matrix(rrload1,nrow=5,ncol=5,byrow = F)
rrload[,c(1:5)]<-rrload1
绘制代码:
ggplot(rrload)+geom_segment(aes(xend=PC1,yend=PC2),x=0,y=0,arrow = arrowstyle2,color=rrload$class)+
geom_text(aes(x=PC1,y=PC2,label=row.names(rrload)),hjust=0,nudge_x = -0.05,vjust=1,nudge_y = 0.025,size=3.5,color='black')+xlim(-0.3,0.3)+ylim(-0.3,0.3)+theme_light()+
theme_minimal()+theme(legend.title = element_text("Class"),axis.text.x = element_text(colour = "black",size = 10),axis.text.y = element_text(colour = "black",size = 10),axis.title.x = element_text(colour = "black",size = 10),axis.title.y = element_text(colour = "black",size = 10),axis.ticks = element_line(color = "black"),panel.grid = element_blank(), panel.border = element_rect(colour = "black",fill = NA,size = 1))+geom_hline(yintercept = 0,linetype="dashed",color="gray69")+geom_vline(xintercept = 0,linetype="dashed",color="gray69")
这是图表:
【问题讨论】:
-
在
aes映射中指定参数时创建图例。此外,使用诸如rrload$class和row.names(rrload)之类的硬编码元素也是一种不好的形式。现在无法输入正式答案,但今晚晚些时候可能会。