【问题标题】:Why is my correlation plot output in vertical rows?为什么我的相关图输出是垂直行?
【发布时间】:2019-05-06 19:47:39
【问题描述】:

我正在尝试绘制两个 7 点变量之间的基本相关性。我得到一个 0.72 的相关性,但数据点只是图表上每个数字点的一个点(就像只是等距排列成行的点)。我仔细检查以确保变量是数字的(它们是)。我尝试了几种不同的方法来绘制它,点总是以相同的方式出现。有任何想法吗?

代码:

library("ggpubr")
ggscatter(plotdata, x = "TID", y = "PID7", use = "complete.obs",
      add = "reg.line", conf.int = TRUE, 
      cor.coef = TRUE, cor.method = "pearson",
      xlab = "X", ylab = "Y")

样本数据:

dput(head(plotdata, 20))

structure(list(plotdata.TID = c(7, 1, 3, 5, 5, 7, 7, 6, 1, 4, 
1, 4, 1, 1, 7, 7, 1, 1, 1, 4), plotdata.PID7 = c(1, 1, 3, 6, 
6, 7, 6, 6, 2, 7, 1, 4, 1, 1, 7, 6, 2, 3, 2, 4)), row.names = c(NA, 
20L), class = "data.frame")

【问题讨论】:

  • 您可以发布示例数据吗?请使用dput(plotdata) 的输出编辑问题。或者,如果 dput(head(plotdata, 20)) 的输出太大。
  • 已更新,谢谢!

标签: r correlation scatter-plot


【解决方案1】:

在我的脑海中,这听起来是因为数据是离散的而不是连续的(特别是因为你说“7 点变量”)。这意味着每个点都被精确地绘制在一堆其他点之上,因此无法查看其中有多少。

尝试绘制带有一些抖动的散点图,以便更好地了解分布(这会在每个点的定位中注入一点随机性)。

这是如何做到这一点的:

https://ggplot2.tidyverse.org/reference/position_jitter.html

【讨论】:

  • 使用 +geom_jitter() 就像一个魅力!谢谢!
  • 太棒了!请将我的答案标记为已接受,以向其他人表明它对您有用。另一种可行的方法是通过降低 alpha 将点设置为半透明,但我发现当可能的值很少时,抖动通常效果更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2020-08-11
  • 1970-01-01
  • 2021-12-26
  • 2015-10-29
  • 2014-03-10
相关资源
最近更新 更多