#r #ggplot2
#r #ggplot2
Вопрос:
Я создаю PCA на ggplot, и мне нужно придать точкам конкретные формы для каждого условия. Я использовал следующий код:
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, и это просто меняет их все на черный. Любая помощь будет оценена.
Спасибо!
Комментарии:
1. посмотрите здесь: sape.inf.usi.ch/quick-reference/ggplot2/shape
2. Привет, спасибо за это, но, к сожалению, я не могу понять, что это наше. Я добавил это в свой код
cisr5_plot <- ggplot(cisr5scores, aes(x=PC1, y=PC2)) geom_point(size= 4.5, aes(fill=cisr5$Treatment), shape =21, 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"))
, но, похоже, это не сработало3. Пожалуйста, опубликуйте некоторые примеры данных, используя
dput()
в вашем вопросе.
Ответ №1:
Исправлено использование этого кода для вызова формы в эстетике на основе обработки, а затем для придания форм вручную.
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"))