r - qplot:仅绘制低于阈值的节点
问题描述
我正在尝试制作相异矩阵的可视化图表。使用这个站点,我遇到qgraph
了 package 中的函数qgraph
。使用该threshold
标志,我可以从我的网络中删除高于提供的数值的边缘。这很好用,但是,如果我只想绘制低于某个阈值而不是高于某个阈值的值怎么办?
为此,我回到了这个网站并在这里阅读:如何用 qgraph 绘制接近零的值?cut
为此目的使用标志。但是,正如答案所述,此标志只会“调整饱和度,使切点以上的所有内容都具有最强的颜色强度,切点以下的任何内容,饱和度都会变弱。”
我想做的是只在低于我的切割值(或阈值)的节点之间绘制线,而不是其他任何东西。
以下是一些可重现的数据:
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
to的值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
)
由reprex 包于 2020-04-06 创建(v0.3.0)
推荐阅读
- mysql - 优化连接中的 MySQL "OR" 查询
- algorithm - 最优子结构属性
- azure-devops - 使用 DevOps 发布管道将工件上传到 Linux 服务器
- sql - 如何只选择最近的
- c++ - c++ 如果将“map::key_comp”作为一种将数字与现有密钥进行比较的方式调用,会影响性能吗?
- apache-kafka - 将记录插入 DynamoDB 模型的 Kafka Streams 拓扑 - 消耗率低
- shopify - Shopify - 在变体之间更改时,产品变体比较价格不会更新
- powershell - 将类名解析为类型加速器名称
- json - 如何读取 json 文件并适合 lstm 模型?
- java - 在不创建新变量 Java 的情况下添加、减去和乘以 2 个分数