0

我正在 ggplot 上制作 PCA,我需要根据条件制作特定形状的点。我使用了以下代码:

cisr5_plot <- ggplot(cisr5scores, aes(x=PC1, y=PC2))+
  geom_point(size= 4.5, aes(fill=cisr5$Treatment), shape =21, colour="black")+
  scale_fill_manual(breaks=c("Cells","HIV-1 R5", "LPS", "M. bovis", "H37Rv", "HN878", "CDC1551", "EU127"),
                      values=c("Cells" = "black", "HIV-1 R5" = "ivory3", "LPS" = "royalblue4", "M. bovis" = "darkcyan", "HN878" = "sandybrown", "H37Rv" = "seagreen4", "EU127" = "darkorange1", "CDC1551" = "orangered1"))+
  xlab(paste("PC1 ", "(",cisr5exp12[1],"%", sep=""))+
  ylab(paste("PC1 ", "(",cisr5exp12[2],"%", sep=""))+
  theme(axis.title.y = element_text(size = 24, family = "sans"),
        legend.position = "bottom",
        legend.text = element_text(size = 22, family = "sans"),
        axis.text.x = element_text(colour ="black", size = 22, family = "sans"),
        axis.text.y = element_text(colour ="black", size = 22, family = "sans"),
        axis.title.x = element_text(colour = "black", size = 24, family = "sans"),
        legend.title = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"),
        plot.title = element_text(size = 10, hjust = 0.5))+
  theme(legend.key = element_rect(fill = "white"))

要创建此图:

在此处输入图像描述

但是我想更改每个单独的形状,并且我已经尝试使用 scale_shape_manual 多年,它只是将它们全部更改为黑色。任何帮助,将不胜感激。

谢谢!

4

1 回答 1

0

修复了使用此代码,根据处理在美学中调用形状,然后给出手动形状。

cisr5_plot <- ggplot(cisr5scores, aes(x=PC1, y=PC2))+
  geom_point(size= 4.5, aes(fill=cisr5$Treatment, shape = cisr5$Treatment), colour="black")+
  scale_shape_manual(values=c("Cells" = 21,"HIV-1 R5" = 21,"LPS" = 24,"M. bovis" = 23,"HN878" = 24,"H37Rv" = 21,"EU127" = 24,"CDC1551" = 21))+
  scale_fill_manual(breaks=c("Cells","HIV-1 R5", "LPS", "M. bovis", "H37Rv", "HN878", "CDC1551", "EU127"),
                      values=c("Cells" = "black", "HIV-1 R5" = "ivory3", "LPS" = "royalblue4", "M. bovis" = "darkcyan", "HN878" = "sandybrown", "H37Rv" = "seagreen4", "EU127" = "darkorange1", "CDC1551" = "orangered1"))+
  xlab(paste("PC1 ", "(",cisr5exp12[1],"%", ")", sep=""))+
  ylab(paste("PC1 ", "(",cisr5exp12[2],"%", ")", sep=""))+
  theme(axis.title.y = element_text(size = 24, family = "sans"),
        legend.position = "bottom",
        legend.text = element_text(size = 22, family = "sans"),
        axis.text.x = element_text(colour ="black", size = 22, family = "sans"),
        axis.text.y = element_text(colour ="black", size = 22, family = "sans"),
        axis.title.x = element_text(colour = "black", size = 24, family = "sans"),
        legend.title = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"),
        plot.title = element_text(size = 10, hjust = 0.5))+
  theme(legend.key = element_rect(fill = "white"))
于 2020-11-04T22:16:56.633 回答