R 箱线图/点图以显示差异

R 箱线图/点图以显示差异,r,R,我有如下数据: structure(c(170007558.204312, 3151225505.1608, 3228057474.07417, 131519574.092116, 2149477968.81888, 1215136556.10718, 160433707.919651, 5956246992.50776, 2558167135.01689, 3245672969.97675, 169100005.594611,

我有如下数据:

structure(c(170007558.204312, 3151225505.1608, 3228057474.07417, 
            131519574.092116, 2149477968.81888, 1215136556.10718, 160433707.919651, 
            5956246992.50776, 2558167135.01689, 3245672969.97675, 169100005.594611, 
            354825870.40362, 1576805307.20395, 416870647.054276, 3399878725.25131, 
            370231854.581136, 1122345506.21081, 2305206508.74322, 2232159732.1229, 
            47308024.505238, 1241395335.9693, 2436980532.07484, 1128618969.34889, 
            3100422173.38636, 288672329.474137, 2987525983.71596, 3287998115.95645, 
            152127227.856302, 1994141536.64711, 1239229228.43808, 145289220.860244, 
            5376086563.26477, 2288378963.83637, 3084446977.22353, 63805766.33001, 
            336627137.967236, 1459357039.40439, 338887231.409886, 2712985868.45896, 
            351047105.326338, 1097447659.97404, 2042978821.82768, 2197665385.69067, 
            38049639.2725552, 1145898075.14945, 2394369287.02634, 941453724.349293, 
            2879533609.52787), .Dim = c(24L, 2L), .Dimnames = list(c("Mark", 
                                                                     "Chris", "Tom", "Tim", "Hank", "Taylor", 
                                                                     "Moniqe", "Rasp", "Greg", "Mephist", "Daniel", 
                                                                     "Moussa", "Ivan", "Treate", "Argen", "Tupol", 
                                                                     "Gotrek", "Marcel", "Gotae", "Ernsten", "Alfred", 
                                                                     "Katrin", "Paul", "Marten"), NULL))
我想在列
1
2
之间进行两两比较。重要的是,所有这些行都以某种方式创建了一个实体。因此,一般来说,两组成员会进行比较。我只是想证明这些团体的成员真的很相似。我考虑过简单的箱线图/点线图,但他妈的如何规范化这些数据以将所有内容放在一个图上?你还有其他的比较吗?如何将两个数据集中的数字放入一个图形中

编辑: 只是忘了提一下,我希望避免计算它们之间的比率并绘制输出。

您可以尝试

library(reshape2)
dl <- melt(d)
plot(dl[,2], dl[,3])
for(i in 1:nrow(d)){
  lines(1:2, c(d[i,]))
}

你可以在三角帆上写字

library(tidyverse)
library(ggrepel)
as.data.frame(d) %>%
  add_column(Names=rownames(d)) %>% 
  gather(key, value, -Names) %>% 
  ggplot(aes(x=key, y=value,label=Names)) +
  geom_boxplot(fill="grey") +
  geom_line(aes(group=Names)) + 
  geom_text_repel(size=3, color="red") +
  theme_classic()

另一种方法是旋转绘图并在y轴上显示名称

ggplot(dl, aes(x= value, y=Var1, col = factor(Var2))) + geom_point()  + theme_bw()

您还可以尝试对数据进行中位数标准化,以便更好地比较个体。

您可以尝试

library(reshape2)
dl <- melt(d)
plot(dl[,2], dl[,3])
for(i in 1:nrow(d)){
  lines(1:2, c(d[i,]))
}

你可以在三角帆上写字

library(tidyverse)
library(ggrepel)
as.data.frame(d) %>%
  add_column(Names=rownames(d)) %>% 
  gather(key, value, -Names) %>% 
  ggplot(aes(x=key, y=value,label=Names)) +
  geom_boxplot(fill="grey") +
  geom_line(aes(group=Names)) + 
  geom_text_repel(size=3, color="red") +
  theme_classic()

另一种方法是旋转绘图并在y轴上显示名称

ggplot(dl, aes(x= value, y=Var1, col = factor(Var2))) + geom_point()  + theme_bw()


你也可以尝试对数据进行中位数标准化,以便更好地比较个体。

如果只是点对点,那又如何?正如我已经提到的,这听起来是个好主意,但Jimbou显示的图表看起来有点混乱。如果只是点对点,那怎么办?正如我已经提到的,这听起来是个好主意,但Jimbou显示的图表看起来有点混乱。它看起来像我可以接受的输出,但你不认为它有点太混乱了吗?如果我们能够在不完全弄乱的情况下为这些点贴上标签,那就太好了。您可以在
ggrepel
包中使用
geom\u text\u repel
来完成this@Jimbou,两种解决方案看起来都不错。特别是,我感谢第二个!我只有一个问题。有没有办法处理重叠的点?你能让他们看得见吗?它看起来更像是第二个数据集丢失的点。在我的原始数据中,我遇到了这个问题。@ShaxiLiver使用
geom_point(alpha=.5,size=5)
添加了一些alpha?看起来输出我可以接受,但你不觉得有点太乱了吗?如果我们能够在不完全弄乱的情况下为这些点贴上标签,那就太好了。您可以在
ggrepel
包中使用
geom\u text\u repel
来完成this@Jimbou,两种解决方案看起来都不错。特别是,我感谢第二个!我只有一个问题。有没有办法处理重叠的点?你能让他们看得见吗?它看起来更像是第二个数据集丢失的点。在我的原始数据中,我有这个问题。@ShaxiLiver使用
geom_点(alpha=.5,size=5)添加一些alpha