根据不同时间段的处理绘制散点图(或 X、Y)
Make scatter (or X, Y) plot by treatment for different time period
我有这样的数据(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
.......
.......
我想为每个 treatment
组绘制 diameter
的散点图(或 x、y)。我发现 lattice
library plot 现在更有用,我用过:
require(lattice)
xyplot(`Diameter(inches).Sep` ~ Treatment , merged.Sep.Dec.Mar, pch= 20)
生成图:
但是,我想在 "Diameter of Sep" 旁边为每个具有不同颜色的处理添加 "Diameter from Dec" 的散点图。 我无法找到一个我目前可以使用的可行示例。
使用 lattice
、ggplot2
或 base plot
或任何其他方法会非常有用。
谢谢,
是这样的吗?
library(tidyverse)
df %>%
gather(Month, Diameter, -Treatment) %>%
ggplot(aes(Treatment, Diameter)) +
geom_point(aes(colour = Month), position = position_dodge(width = 0.9))
您可以通过更改 position_dodge
中的 width
来调整不同颜色点之间的分隔量。
示例数据
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)
这是一个 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)
我有这样的数据(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
.......
.......
我想为每个 treatment
组绘制 diameter
的散点图(或 x、y)。我发现 lattice
library plot 现在更有用,我用过:
require(lattice)
xyplot(`Diameter(inches).Sep` ~ Treatment , merged.Sep.Dec.Mar, pch= 20)
生成图:
但是,我想在 "Diameter of Sep" 旁边为每个具有不同颜色的处理添加 "Diameter from Dec" 的散点图。 我无法找到一个我目前可以使用的可行示例。
使用 lattice
、ggplot2
或 base plot
或任何其他方法会非常有用。
谢谢,
是这样的吗?
library(tidyverse)
df %>%
gather(Month, Diameter, -Treatment) %>%
ggplot(aes(Treatment, Diameter)) +
geom_point(aes(colour = Month), position = position_dodge(width = 0.9))
您可以通过更改 position_dodge
中的 width
来调整不同颜色点之间的分隔量。
示例数据
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)
这是一个 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)