我正在使用ggplot2在R中创建散点图,以便随着时间的推移可视化人口。我的数据集如下所示:
sampling_period cage total_1 total_2 total_3
4 y 34 95 12
4 n 89 12 13
5 n 23 10 2
我一直使用以下代码为变量total_1,total_2和total_3制作单独的散点图:
qplot(data=BLPcaged, x=sampling_period, y=total_1, color=cage_or_control)
qplot(data=BLPcaged, x=sampling_period, y=total_2, color=cage_or_control)
qplot(data=BLPcaged, x=sampling_period, y=total_3, color=cage_or_control)
我想创建一个散点图,其中包含有关所有三个种群随时间变化的信息。我希望最终产品由三个散点图组成,一个在彼此的顶部,并且具有相同的轴刻度。这样我可以在一个可视化中比较所有三个种群。
我知道我可以使用facet为因子的级别制作不同的图,但它是否也可以用于为不同的变量创建不同的图?
答案 0 :(得分:1)
您可以使用melt()
重塑您的数据total
作为您可以面对的因素:
BLPcaged = data.frame(sampling_period=c(4,4,5),
cage=c('y','n','n'),
total_1=c(34,89,23),
total_2=c(95,12,10),
total_3=c(12,13,2))
library(reshape2)
BLPcaged.melted = melt(BLPcaged,
id.vars=c('sampling_period','cage'),
variable.name='total')
所以现在BLPcaged.melted
看起来像这样:
sampling_period cage total value
1 4 y total_1 34
2 4 n total_1 89
3 5 n total_1 23
4 4 y total_2 95
5 4 n total_2 12
6 5 n total_2 10
7 4 y total_3 12
8 4 n total_3 13
9 5 n total_3 2
然后,您可以通过total
:
ggplot(BLPcaged.melted, aes(sampling_period, value, color=cage)) +
geom_point() +
facet_grid(total~.)