我有一些治疗前后的数据,想看看配对数据,所以我转向ggpaired
. 我能够让它与我的数据一起正常工作。(我模拟了一些与我正在使用的数据相似的数据,以便其他人可以弄乱它。)
set.seed(123)
size <- 28
a.d <- round(runif(size, 1, 4))
g.d <- round(runif(size, 1, 4))
s.d <- round(runif(size, 1, 4))
p.d <- round(runif(size, 1, 4))
a.f <- a.d + round(runif(1,-1,1))
g.f <- g.d + round(runif(1,-1,1))
s.f <- s.d + round(runif(1,-1,1))
p.f <- p.d + round(runif(1,-1,1))
df.t <- data.frame("A" = c(a.d,a.f),"G" = c(g.d,g.f),"S" = c(s.d,s.f),"P" = c(p.d,p.f),"V" = c(rep("D", size),rep("F", size)))
然后进行绘图(我已经安装并加载了包ggpubr
、gridExtra
和ggplot2
):
p <- list()
for(i in colnames(df.t[,-5])){
d <- head(df.t[i],nrow(df.t)/2)
d <- d[,i]
f <- tail(df.t[i],nrow(df.t)/2)
f <- f[,i]
fin <- data.frame(draft = d, final = f)
p[[i]] <- ggpaired(fin, cond1 = "draft", cond2 = "final", fill = "condition", line.color = "gray", line.size = 0.4, palette = "jco", xlab = "Draft version", ylab = paste(colnames(df.t[i]),"rating"), title = paste("Paired box plot of",colnames(df.t[i]),"ratings"))
}
do.call(grid.arrange,p)
产生图像:
这很好,但是我有很多值,例如,预处理的值为 2,然后处理后的值为 1,您无法用线条颜色将其真正可视化。在谷歌搜索时,我遇到了这篇文章,我认为这不是我需要的。我不知道表达这个问题的最佳方式,并不断寻找网络边缘线宽度的结果。
基本上,我想做的是:如果我有 11 个观察值从 3 到 2,我希望从 3 到 2 的线比从 1 到 0 的线更暗,只有 3观察,有点像我在 Paint 中做的这个非常快速的模型:
我希望有可能用line.color
(或者可能用line.weight
?)做这样的事情,并制作一个按重量(或更具体地说,计数)为线条着色的函数,但我不是最好的R(而且对它来说相当新),所以任何帮助都将不胜感激,因为我不知道如何开始做这样的事情,而且我在谷歌上搜索到的关于这个主题的所有内容似乎都与网络图有关。