I'm a very new coder looking to change the shapes of my PCA Biplot. My PCA Biplot code is as follows:
group <- c(rep("SHIME 1_Trt1", times=8), rep('SHIME 1_Trt2', times=6),
rep("SHIME 2_Trt1", times=8), rep('SHIME 2_Trt2', times=6),
rep("SHIME 3_Trt1", times=8), rep('SHIME 3_Trt2', times=6))
clusters <- c(rep("SCFA", times=3), rep("Organic acid", times=3),
rep("Alcohols", times=3), rep('AA', times=2), rep('Ketone', times=1), rep('Lipid', times=1))
j_scale <- prcomp(j, center=TRUE, scale=TRUE)
fviz_pca_biplot(j_scale, repel=TRUE, pointsize=4, pointshape=21, col.var=factor(clusters),
arrowsize=0.6, labelsize=4,
palette=c("#00AFBB", "#00AFBB", "#E7B800", "#E7B800", "#FC4E07", "#FC4E07", "#FC4E08"),
geom='point', fill.ind=group, legend.title=list(fill='System',color='Categories')) +
ggpubr::color_palette("lancet")
The colors are arranged as I'd like it, but i'd like the shapes to be different between Trts. Example: shime1 trt 1 = blue circle, shime 1 trt 2 = blue sq, shime 2 trt 1 = green circle, etc. See picture below for current biplot.
I've tried:
scale_shape_manual(values=c()), habillage=group
doesn't give me the same output as fill.ind and clashes with col.var= , geom.ind/var, and shape.ind
Changing pointshape=c()
doesn't seem to work either
And even a modified code:
fviz_pca_biplot(j_scale, repel=TRUE, pointsize=4, pointshape=21, col.ind=shimeb_pca$Type,
col.var='black', arrowsize=0.6, labelsize=4,
palette=c("#00AFBB", "#00AFBB", "#E7B800", "#E7B800", "#FC4E07", "#FC4E07", "#FC4E08"),
geom='point', legend.title=list(fill='System')) + theme_minimal() +
scale_shape_manual(values=c(5, 20, 21, 20, 21, 20))
#This looks worse than the original code
Data excerpt prior to prcomp(j, center=TRUE, scale=TRUE):
Acetate Propionate Butyrate Lactate Formate Succinate Ethanol Methanol
S1_0 40.09358 10.726725 0.7180000 0.6104750 1.901075 0.5284000 10.730900 1.163525
S1_1 40.05890 10.962025 0.6841500 0.7253000 1.958825 0.7286250 11.013750 1.217125
S1_1.5 44.27740 13.020812 0.8308875 0.4131125 1.355225 0.0539250 10.897100 1.267700
S1_2 43.87610 11.580800 0.6531500 0.7476500 2.461150 0.7961250 9.628950 1.338500
S1_3 45.70235 12.458150 0.7131750 0.4026250 2.059375 0.5043250 20.098575 1.426900
S1_5 45.15580 12.711575 0.7775750 0.1914750 0.864700 0.0535750 10.404050 1.357200
S1_7 44.11000 12.885625 0.7210250 0.3525500 2.534225 0.0616750 7.744150 1.431675
S1_9 47.27562 12.739375 0.6837000 0.4053000 2.804775 0.0570500 13.701000 1.630200
Any help is appreciated. Thanks in advance.
Try
fviz_pca_biplot(j_scale, geom.ind = 'point', repel = TRUE, pointsize = 4, habillage = group, arrowsize = 0.6, labelsize = 4, legend.title = list(fill = 'System'))
Good Job.