qgraph:节点处的多个图像

时间:2013-03-25 18:59:28

标签: r r-lavaan r-qgraph

我最近一直在使用R中的Lavaan包进行结构方程式建模,并在生成路径图时使用semPlot包,它似乎背负qgraph

我发现qgraph支持将图像(例如jpeg和png)绘制为节点。

我的问题是,是否有可能,如果是这样,如何为路径图中的每个节点绘制不同的图像。我希望能够使用我的研究项目的图片填写我的路径图上的清单变量。谢谢!

1 个答案:

答案 0 :(得分:1)

并感谢您查看semPlot(仍然处于非常发展状态)。你当然可以这样做。事实上,semPlot背负着qgraph,实际上它基本上是qgraph的前端并返回一个qgraph对象。您可以向qgraph发送参数或使用不同的参数再次绘制结果。例如:

library("lavaan")

# Example 5.8 from mplus user guide:
Data <- read.table("http://www.statmodel.com/usersguide/chap5/ex5.8.dat")
names(Data) <- c(paste("y", 1:6, sep=""),
                 paste("x", 1:3, sep=""))

# Model:
model.Lavaan <- 'f1 =~ y1 + y2 + y3
f2 =~ y4 + y5 + y6
f1 + f2 ~ x1 + x2 + x3 '

# Run Lavaan:
library("lavaan")
fit <- lavaan:::cfa(model.Lavaan, data=Data, std.lv=TRUE)

# Download R logo:
download.file("http://cran.r-project.org/Rlogo.jpg", file <- tempfile(fileext = ".jpg"), 
              mode = "wb")

# Plot path diagram and store qgraph object:
Graph <- semPaths(fit,title=FALSE, curvePivot = TRUE)

# plot qgraph again with images:
qgraph(Graph, images = file, labels = FALSE)

如果要为每个节点使用不同的图像,可以按照节点的顺序为图像提供包含每个节点的图像文件名的向量。要查找节点顺序,您可以执行以下操作:

# To see which nodes are which:
Graph$graphAttributes$Nodes$labels