omxGraphviz help (making path diagrams)

Wiki home page

Table of Contents 

OpenMx can output path diagrams using the dot syntax.

You can learn about this language for describing path diagrams at several online tutorials.

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.

Here is 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")

Rendering the output

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.

Other programmes that can open .dot include Omnigraffle.

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};