【问题标题】:qplot: Only graphing nodes below a thresholdqplot:仅绘制低于阈值的节点
【发布时间】:2020-07-16 19:18:54
【问题描述】:

我正在尝试制作相异矩阵的可视化图表。使用这个站点,我遇到了 qgraph 包中的 qgraph 函数。使用threshold 标志,我可以从我的网络中删除高于提供的数值的边缘。这很好用,但是,如果我只想绘制低于某个阈值而不是高于某个阈值的值怎么办?

为此,我回到此站点并在此处阅读:How to plot near-zero values with 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 阈值的值。有没有办法做到这一点?

谢谢。

【问题讨论】:

    标签: nodes r matrix data-visualization nodes threshold


    【解决方案1】:

    qgraph 似乎没有低于阈值的能力,因此我们必须对输入数据进行操作。

    threshold 上方的值替换为0NA 应该可以。使用 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 package (v0.3.0) 于 2020 年 4 月 6 日创建

    【讨论】:

    • 我可能读错了 OP 的问题,但他们不想绘制 only 低值而不抑制它们吗?
    • GGamba:非常感谢您提出minimum 标志。我事先确实尝试过,它仍然给了我所有这些额外的线(较暗的线只是高于 0.2 的值),所以使用这个标志的结果与我发布的图表几乎相同。因为我的真实数据集是 110 列乘 100 列,所以如果值低于 0.2,我只需要查看节点之间的线。不过,我真的很感谢您的回复。
    • 抱歉,不知道我怎么读错了。将用真实答案更新答案
    • 非常感谢!这很好用。另外,感谢您向我介绍replace 功能。
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多