
We can use IGMinimumVertexColoring from IGraph/M to find one way to colorize graphs with minimum number of colors:
(* Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"] *)
Needs["IGraphM`"]
Then run the code below
cldb=<| 1 -> RGBColor[0.61, 0.12, 0.95], 2 -> RGBColor[0.66, 0.29, 0.35],
3 -> RGBColor[0.84, 0.84, 0.21], 4 -> RGBColor[0, 0, 0] |>;
MapThread[Module[{sty,vl},
sty=cldb/@IGMinimumVertexColoring[#1];
vl=VertexList[#1];
GraphPlot[#1,VertexStyle->Thread[vl->sty],VertexSize->#2]]&,
{{b80bucky,dg2},{0.55,0.9}}]//GraphicsRow
where the definitions of b80bucky and dg2 are found in the cloud notebook in the original post.