点图中的两个分组变量

时间:2016-03-23 19:50:52

标签: r plot grouping lattice

我正在尝试使用以下数据框在R中创建一个简单的dotplotlattice包):

df<-data.frame(Sediment=c("Algae", "Algae", "Algae", "Bare", "Bare", "Bare", "Dredged", "Dredged", "Dredged"), Rep=c(1,2,3,1,2,3,1,2,3), LeafElongation=c(0, 20.6, 0, 29.1, 41.4, 45.9, 54.1, 22.3, 26.7))

我想使用标记颜色按沉积物和标记形状对数据进行分组,以便按Rep分组数据。到目前为止,这是我的代码:

dotplot(LeafElongation~Sediment, data=df, groups=Sediment, method="jitter", col = 
      c("darkolivegreen", "darkgoldenrod3", "sienna"), main= "Leaf Elongation: Ramet Plots", ylab="Average total plant leaf elongation (cm)", cex.main=1.7, cex.lab=1.2, cex.axis=1.7)

我已经通过沉积物成功地对我的数据进行了分组,这通常是我想要出现的情节,但我想为每个Rep设置不同的形状(圆圈为1,钻石为2,三角形为3)。我也希望形状被填充而不是打开。另外,我认为jitter方法应该将重叠点分开,以便可以看到两者,但在这种情况下它似乎不起作用。

2 个答案:

答案 0 :(得分:0)

您可以将此作为附加参数添加到点图中以按形状分组。      pch = c(16, 17, 18)[df$Rep]

根据本指南,您可以将16,17,18替换为任何其他形状:http://www.endmemo.com/program/R/pchsymbols.php

答案 1 :(得分:0)

您正在寻找pch参数。只需将其添加到您的代码中,然后直接使用df$Rep提供。您可以删除现在不必要的参数groups

dotplot(LeafElongation~Sediment, data=df, 
    method="jitter", 
    col = c("darkolivegreen", "darkgoldenrod3", "sienna"), 
    main= "Leaf Elongation: Ramet Plots", 
    ylab="Average total plant leaf elongation (cm)", 
    cex.main=1.7, cex.lab=1.2, cex.axis=1.7,
    pch = df$Rep)