我正在尝试制作一个不相似矩阵的可视图形。在此站点上,我从软件包qgraph
中遇到了qgraph
功能。使用threshold
标志,可以从网络中除去提供的数值以上的边。但是,如果我只想绘制低于某个阈值而不是高于某个阈值的值,该怎么办?
为此,我回到此站点并在此处阅读:How to plot near-zero values with qgraph?为此目的使用cut
标志。但是,正如答案所指出的那样,该标志只会“调整饱和度,以使剪切点以上的所有颜色都具有最强的颜色强度,剪切点以下的任何颜色都将使饱和度变弱”。
我想做的是仅绘制nodes之间低于我的切割值(或阈值)的线,而不绘制其他任何线。
以下是一些可重现的数据:
Dist <- data.frame(Sample_1 = c(0.0, 0.245, 0.191, 0.78, 0.5),
Sample_2 = c(0.3, 0.0, 0.2, 0.99, 0.6),
Sample_3 = c(0.65, 0.45, 0.0, 0.05, 0.8),
Sample_4 = c(0.45, 0.06, 0.88, 0.0, 0.7),
Sample_5 = c(0.11, 0.79, 0.66, 0.37, 0.0),
row.names = c("Sample_1", "Sample_2", "Sample_3", "Sample_4", "Sample_5"))
绘制图形:
qgraph(Dist, layout = "circle", vsize = 5, color = c("cyan", "yellow", "pink", "green3", "gray"), labels = c("Sample_1", "Sample_2", "Sample_3", "Sample_4", "Sample_5"), label.cex = 3, cut = 0.2)
如您所见,在cut = 0.2之上的所有图形也会绘制出来并且变暗。
我只希望绘制低于0.2阈值的值。有什么办法吗?
谢谢。
qgraph
似乎没有能力降低到阈值以下,因此我们必须操纵输入数据。
将threshold
至0
或NA
上方的值替换即可。使用NA
会得到相同的输出,但带有警告。
Dist <- data.frame(
Sample_1 = c(0.0, 0.245, 0.191, 0.78, 0.5),
Sample_2 = c(0.3, 0.0, 0.2, 0.99, 0.6),
Sample_3 = c(0.65, 0.45, 0.0, 0.05, 0.8),
Sample_4 = c(0.45, 0.06, 0.88, 0.0, 0.7),
Sample_5 = c(0.11, 0.79, 0.66, 0.37, 0.0),
row.names = c("Sample_1", "Sample_2", "Sample_3", "Sample_4", "Sample_5")
)
library(qgraph)
qgraph(
replace(Dist, Dist > 0.2, 0),
layout = "circle",
vsize = 5,
color = c("cyan", "yellow", "pink", "green3", "gray"),
labels = c("Sample_1", "Sample_2", "Sample_3", "Sample_4", "Sample_5"),
label.cex = 3
)
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9oYjQ2aFdQLnBuZyJ9” alt =“”>
由reprex package(v0.3.0)在2020-04-06创建