This Q is related to this one but haven't found a way to extend it to the use of VertexLabels in panels.
Given this graph data:
CCIFigure = { {"CCI Groups Dictionary", {0, 1}, a}, {"Computational CCI Groups", {0, 1/2}, b}, {"Scraped VASD Text/Codes", {-1, 0}, a}, {"Extracted UCSD Codes", {1, 0}, a}, {"Normalized ICD9", {0, 0}, b}} // associationIndex // Dataset This graph has combinations of directed and undirected edges:
Graph[{1 \[DirectedEdge] 2, 2 \[UndirectedEdge] 5, 3 \[DirectedEdge] 5, 4 \[DirectedEdge] 5}, VertexCoordinates -> Normal@Normal[CCIFigure [All, 2]], VertexLabels -> Normal@Normal[CCIFigure [All, 1]]] However, using VertexLabels in panels as per reference pages:
Graph[{1 \[DirectedEdge] 2, 2 \[UndirectedEdge] 5, 3 \[DirectedEdge] 5, 4 \[DirectedEdge] 5}, VertexCoordinates -> Normal@Normal[CCIFigure [All, 2]], VertexLabels -> Normal@Normal[CCIFigure [All, 1 /* (Placed[#, Center, panel] &)]]] results in arrowheads occluded by the panel:
Is there some combination of options or workaround to fix without knowing in advance the length of the text or panel margins?
Graph layout would have to be aware of bounding box, but from WTC2017 there doesn't seem to be a user-friendly solution to this.
helper functions:
panel[lbl_] := Panel[lbl, FrameMargins -> 0, Background -> Lighter[Yellow, 0.7]] and
associationIndex[l_List]:=Query[MapIndexed[First[#2]->#1&]/*Association][l] 




Placed[#, {After, Above}, panel] &? $\endgroup${After,Above}puts panels besides the vertices which are rendered as circles - it's an option I will consider but it's not as clean as the panels themselves as the vertices. $\endgroup$