通过处理不同的时间段来绘制散射(或X,Y)图

问题描述 投票:0回答:2

我有一个这样的数据(R数据帧):

Treatment   Diameter(inches).Sep    Diameter(inches).Dec
Aux_Drop    NA  NA
Aux_Spray    3.7    2
DMSO    NA  NA
Water   4.2 2
Aux_Drop    2.6 3
Aux_Spray    3.7    3
DMSO    4   2
Water   5.2 1
Aux_Drop    5.4 2
Aux_Spray    3.4    2
DMSO    4.8 2
Water   4.2 2
Aux_Drop    4.7 2
Aux_Spray    2.7    2
DMSO    3.4 2
Water   4.9 2
.......
.......

我想为每个diameter组制作treatment的散点图(或x,y)图。我发现lattice库的情节更加有用,我已经使用过:

require(lattice)
xyplot(`Diameter(inches).Sep` ~ Treatment , merged.Sep.Dec.Mar, pch= 20)

生成情节:

enter image description here

但是,我想为每种不同颜色的处理添加“直径为12月”旁边的“直径”的散点图。到目前为止,我无法找到一个可以用于我的目的的可行示例。

使用latticeggplot2base plot或任何其他方法会非常有帮助。

谢谢,

r ggplot2 plot lattice
2个回答
1
投票

像这样的东西?

library(tidyverse)
df %>%
    gather(Month, Diameter, -Treatment) %>%
    ggplot(aes(Treatment, Diameter)) +
    geom_point(aes(colour = Month), position = position_dodge(width = 0.9))

enter image description here

您可以通过更改width中的position_dodge来调整不同颜色点之间的分离量。


样本数据

df <- read.table(text =
    "Treatment   Diameter(inches).Sep    Diameter(inches).Dec
Aux_Drop    NA  NA
Aux_Spray    3.7    2
DMSO    NA  NA
Water   4.2 2
Aux_Drop    2.6 3
Aux_Spray    3.7    3
DMSO    4   2
Water   5.2 1
Aux_Drop    5.4 2
Aux_Spray    3.4    2
DMSO    4.8 2
Water   4.2 2
Aux_Drop    4.7 2
Aux_Spray    2.7    2
DMSO    3.4 2
Water   4.9 2", header = T)

1
投票

这是一个tidyverse解决方案。它使用tidyr::gather将两种直径类型放入一列。然后,您可以了解该列中的值。我隐藏了颜色图例,因为从轴标签中可以看出类别。

假设数据框名为mydata

library(tidyverse)
mydata %>% 
  gather(Result, Value, -Treatment) %>% 
    ggplot(aes(Result, Value)) + 
    geom_jitter(aes(color = Result), 
                width = 0.1) + 
    facet_wrap(~Treatment) +
    guides(color = FALSE)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.