Я хотел бы программно создавать диаграммы, как этот http://yaroslavvb.com/upload/junction-tree-decomposition.pngсоветы по созданию диаграмм Graph
Я полагаю, я должен использовать GraphPlot с VertexCoordinateRules, VertexRenderingFunction и EdgeRenderingFunction для графиков. Что я должен использовать для цветных скошенных фонов?
Редактировать Используя идеи в основном Саймона, вот это упрощенная «менее надежный» версия, которую я закончил с использованием
Needs["GraphUtilities`"]; GraphPlotHighlight[edges_, verts_, color_] := Module[{}, vpos = Position[VertexList[edges], Alternatives @@ verts]; coords = Extract[GraphCoordinates[edges], vpos]; (* add .002 because end-cap disappears when segments are almost colinear *) AppendTo[coords, First[coords] + .002]; Show[Graphics[{color, CapForm["Round"], JoinForm["Round"], Thickness[.2], Line[coords], Polygon[coords]}], GraphPlot[edges], ImageSize -> 150] ] SetOptions[GraphPlot, VertexRenderingFunction -> ({White, EdgeForm[Black], Disk[#, .15], Black, Text[#2, #1]} &), EdgeRenderingFunction -> ({Black, Line[#]} &)]; edges = GraphData[{"Grid", {3, 3}}, "EdgeRules"]; colors = {LightBlue, LightGreen, LightRed, LightMagenta}; vsets = {{8, 5, 2}, {7, 5, 8}, {9, 6, 3}, {8, 1, 2}}; MapThread[GraphPlotHighlight[edges, #1, #2] &, {vsets, colors}]
http://yaroslavvb.com/upload/mathematica-graphs.png
Краска? : D Просто шутка –
Как вы сделали графики, используемые в вашем вопросе? – Simon
Нашли их в Интернете. Я подозреваю, что это было сделано с некоторыми пакетами из латекса –