As a kludge to draw Hasse diagrams for an assignment, I wrote(based on this):
chars = {"a", "b", "c", "d", "e", "f"};
nums = Association["a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4, "e" -> 5,"f" -> 6];
edges = EdgeList[
AdjacencyGraph[{{1, 0, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0}, {1, 1, 1, 1, 1, 0},
{0, 1, 0, 1, 0, 1}}]];
pOrder[x_, y_] := MemberQ[edges, DirectedEdge[nums[x], nums[y]]];
g = MakeGraph[chars, pOrder, VertexLabel -> True];
h = HasseDiagram[g];
ShowGraph[h, VertexStyle -> PointSize[0.1], VertexLabelColor -> White,
VertexLabelPosition -> {0.025, 0}, BaseStyle -> {FontSize -> 18}]
I have read Is it possible to generate a Hasse Diagram for a defined relation? but the only answer provided was deeply insufficient for me, since contacting the authors or buying the book would take a long time or money. So my question is: Is there a better way to do this? More precisely: Does mathematica have some object to draw a Hasse Diagram from DirectedEdges or adjacency matrices, preferrably working with labels directly? Optionally, is there a way to relate "a" to 1, "b" to 2 and so on without doing it explicitly?



HasseDiagramchooses to arrange the vertices. The placement of vertexain this diagram is puzzling. (Good answer though, of course. I'm just thinking out loud.) – Kellen Myers Sep 29 '14 at 19:32C:\Program Files\Wolfram Research\Mathematica\10.0\AddOns\Packages\Combinatorica(or something like that) .A stripoff of Combinatorica.m shows that it just uses the vertexes in their raw order and puts them left to right. The function even has an undocumented parameterfakthat makes the hasse diagram look pyramid-like(coarsely) – chubakueno Oct 01 '14 at 20:38