Extracting the VertexStyle replacement rule list

I have the following graph.

In[622]:= InputForm[g1] 
Out[622]//InputForm= 
Graph[{1, 2, 3, 4, 5, 6}, {UndirectedEdge[1, 2], 
 UndirectedEdge[2, 3], UndirectedEdge[3, 4], 
 UndirectedEdge[4, 5], UndirectedEdge[5, 6], 
 UndirectedEdge[6, 1]},  {VertexStyle -> {2 -> RGBColor[0, 1, 0], 1 -> RGBColor[0, 0, 1], 
  5 -> RGBColor[0, 1, 0], 6 -> RGBColor[1, 0, 0], 
  4 -> RGBColor[0, 0, 1], 3 -> RGBColor[1, 0, 0]}}] 

Is there a clean way to extract the VertexStyle replacement rule list? I found documentation for how to set properties, and I have seeen how one might extract on a per-vertex (or per-edge) basis with PropertyValue. But I’ve not found how to extract them as a whole.

Danny

Hello Dan,
Are you looking for this?

PropertyValue[g1, VertexStyle]

From your post, tt seems like you’ve already tried this---but isn’t it giving you all the vertices?

Craig

Is this what you are looking for?

In[526]:= 
gg = Graph[{1, 2, 3, 4, 5, 6}, {UndirectedEdge[1, 2], 
  UndirectedEdge[2, 3], UndirectedEdge[3, 4], UndirectedEdge[4, 5], 
  UndirectedEdge[5, 6], 
  UndirectedEdge[6, 
   1]}, {VertexStyle -> {2 -> RGBColor[0, 1, 0], 
   1 -> RGBColor[0, 0, 1], 5 -> RGBColor[0, 1, 0], 
   6 -> RGBColor[1, 0, 0], 4 -> RGBColor[0, 0, 1], 
   3 -> RGBColor[1, 0, 0]}}]; 
In[527]:= PropertyValue[gg, VertexStyle] 
Out[527]= {3 -> RGBColor[1, 0, 0], 6 -> RGBColor[1, 0, 0], 
5 -> RGBColor[0, 1, 0], 2 -> RGBColor[0, 1, 0], 
4 -> RGBColor[0, 0, 1], 1 -> RGBColor[0, 0, 1]}

Craig, Paritosh, thanks, - close enough. What I want (below) is trivial to construct with yours.

VertexStyle -> {2 -> RGBColor[0, 1, 0], 1 -> RGBColor[0, 0, 1], 
   5 -> RGBColor[0, 1, 0], 6 -> RGBColor[1, 0, 0], 
   4 -> RGBColor[0, 0, 1], 3 -> RGBColor[1, 0, 0]} 

Maybe this feels more familiar:

In[57]:= Options[gg, VertexStyle] 
Out[57]= {VertexStyle -> {3 -> RGBColor[1, 0, 0], 6 -> RGBColor[1, 0, 0], 
                          5 -> RGBColor[0, 1, 0], 2 -> RGBColor[0, 1, 0], 
                          4 -> RGBColor[0, 0, 1], 1 -> RGBColor[0, 0, 1]}}

If you need separate style, a somewhat more reliable way would be this

# -> PropertyValue[{g,#}, VertexStyle]& /@ VertexList[g]

This’ll also work in cases like g = CompleteGraph[5, VertexStyle → Red]. Unfortunately I find the property system for graphs somewhat cumbersome and unpredictable to work with…