Check bioc package "clusterprofiler". https://guangchuangyu.github.io/2016/01/go-analysis-using-clusterprofiler/
For heatmaps of GO enrichment, check "revigo". They provide the output as R script which you can load in R and manipulate colors etc. to suit your need.
There are quite a few packages out there, and there was a thread on this already: GO enrichment analysis using R
See also my answer to this thread on GO term reliability: A: Go annotation reliability ?
One that is not mentioned in these threads is topGO
Another one with heatmaps is GOexpress