Copyright © 2007-2024 The OpenMx Project
Wiki home page [1]OpenMx can output path diagrams using the dot [2] syntax.
You can learn about this language for describing path diagrams at several online [3] tutorials [4].
The R for generating a path diagram from a model is straightforward:
omxGraphviz(model, dotFilename="")
(currently for RAM models only)
If you leave parameter 2 blank, the dot file will be output into the R console.
There's a complete example:
require(OpenMx) data(demoOneFactor) manifests <- names(demoOneFactor) latents <- c("G1") model1 <- mxModel("One Factor", type="RAM", manifestVars = manifests, latentVars = latents, mxPath(from=latents, to=manifests), mxPath(from=manifests, arrows=2), mxPath(from=latents, arrows=2, free=F, values=1.0), mxData(cov(demoOneFactor), type="cov",numObs=500) ) omxGraphviz(model1, "one-factor-generated.dot")
dot output is in simple text file describing the latent and manifest variables (nodes) and their connections (edges) of a diagram.
To visualise the diagram, this .dot script must be processed by an application such as graphvis [5].
Other programmes that can open .dot include Omnigraffle [6].
This app does a nice job of rendering .dot http://www.graphviz.org/
This site http://ashitani.jp/gv/ has an online renderer, which is handy for cut and paste: Paste this in to see a sex lim model :-)
t1 [label="Pt1", shape=box]
t2 [label="Pt2", shape=box]
Af -> Am [dir=both, label="ag"]
Cf -> Cm [dir=both, label="eta"]
Af -> t1 [label="af"]
Cf -> t1 [label="cf"]
Ef -> t1 [label="ef"]
Am -> t2 [label="am"]
Cm -> t2 [label="cm"]
Em -> t2 [label="em"]
{rank=min; Af; Cf; Ef; Am; Cm; Em; }; {rank=max; t1; t2}; Escorts Amsterdam [7]
Links
[1] http://openmx.psyc.virginia.edu/wiki/main-page
[2] http://en.wikipedia.org/wiki/DOT_language
[3] http://linuxdevcenter.com/pub/a/linux/2004/05/06/graphviz_dot.html
[4] http://www.orient-lodge.com/node/3408
[5] http://www.graphviz.org/
[6] http://www.omnigroup.com/applications/OmniGraffle/
[7] http://www.escortamsterdamservice.nl