如何在Lattice中更改绘图字符

| 我正在尝试使用以下数据来更改xyplot中的晶格使用的字符类型
> rate
    Temp Rep  Ind Week Weight   Rate
1      9   1    B    1 2.6713  0.254
2      9   1    B    2 2.6713  0.076
3      9   1    B    6 2.6713  0.000
4      9   1    B    8 2.6713  0.000
5      9   1  MST    1 1.0154  0.711
6      9   1  MST    2 1.0154  0.137
7      9   1  MST    6 1.0154  0.000
8      9   1  MST    8 1.0154  0.000
9      9   1 MSCT    1 1.2829  0.447
10     9   1 MSCT    2 1.2829  0.345
11     9   1 MSCT    6 1.2829  0.000
12     9   1 MSCT    8 1.2829  0.000
13     9   1  MBT    1 1.8709  0.211
14     9   1  MBT    2 1.8709  0.255
15     9   1  MBT    6 1.8709  0.000
16     9   1  MBT    8 1.8709  0.000
17     9   1 MBCT    1 2.1388  0.230
18     9   1 MBCT    2 2.1388  0.281
19     9   1 MBCT    6 2.1388  0.000
20     9   1 MBCT    8 2.1388  0.000
21     9   2    S    1 0.8779  0.287
22     9   2    S    2 0.8779  0.065
23     9   2    S    6 0.8779  0.000
24     9   2    S    8 0.8779  0.000
25     9   2  MST    1 0.7196  0.197
26     9   2  MST    2 0.7196  0.193
27     9   2  MST    6 0.7196  0.000
28     9   2  MST    8 0.7196  0.000
29     9   2 MSCT    1 1.4773  0.198
30     9   2 MSCT    2 1.4773  0.233
31     9   2 MSCT    6 1.4773  0.000
32     9   2 MSCT    8 1.4773  0.000
33     9   2  MBT    1 3.4376  0.244
34     9   2  MBT    2 3.4376  0.123
35     9   2  MBT    6 3.4376  0.000
36     9   2  MBT    8 3.4376  0.000
37     9   2 MBCT    1 1.2977  0.514
38     9   2 MBCT    2 1.2977  0.118
39     9   2 MBCT    6 1.2977  0.000
40     9   2 MBCT    8 1.2977  0.000
41    12   1    B    1 3.8078  0.262
42    12   1    B    2 3.8078  0.328
43    12   1    B    6 3.8078  0.000
44    12   1    B    8 3.8078  0.000
45    12   1  MST    1 1.6222  0.294
46    12   1  MST    2 1.6222  0.213
47    12   1  MST    6 1.6222  0.000
48    12   1  MST    8 1.6222  0.000
49    12   1 MSCT    1 1.0231  0.358
50    12   1 MSCT    2 1.0231  0.281
51    12   1 MSCT    6 1.0231  0.000
52    12   1 MSCT    8 1.0231  0.000
53    12   1  MBT    1 1.2747  0.353
54    12   1  MBT    2 1.2747  0.254
55    12   1  MBT    6 1.2747  0.000
56    12   1  MBT    8 1.2747  0.000
57    12   1 MBCT    1 1.0602  0.390
58    12   1 MBCT    2 1.0602  0.321
59    12   1 MBCT    6 1.0602  0.000
60    12   1 MBCT    8 1.0602  0.000
61    12   2    S    1 0.2584  0.733
62    12   2    S    2 0.2584  0.444
63    12   2    S    6 0.2584  0.000
64    12   2    S    8 0.2584  0.000
65    12   2  MST    1 0.6781  0.314
66    12   2  MST    2 0.6781  0.421
67    12   2  MST    6 0.6781  0.000
68    12   2  MST    8 0.6781  0.000
69    12   2 MSCT    1 0.7488  0.845
70    12   2 MSCT    2 0.7488  0.661
71    12   2 MSCT    6 0.7488  0.000
72    12   2 MSCT    8 0.7488  0.000
73    12   2  MBT    1 1.1220  0.184
74    12   2  MBT    2 1.1220  0.305
75    12   2  MBT    6 1.1220  0.000
76    12   2  MBT    8 1.1220  0.000
77    12   2 MBCT    1 1.4029  0.338
78    12   2 MBCT    2 1.4029  0.410
79    12   2 MBCT    6 1.4029  0.000
80    12   2 MBCT    8 1.4029  0.000
81    15   1    B    1 3.7202  0.340
82    15   1    B    2 3.7202  0.566
83    15   1    B    6 3.7202  0.000
84    15   1    B    8 3.7202  0.000
85    15   1  MST    1 0.7914  0.668
86    15   1  MST    2 0.7914  0.903
87    15   1  MST    6 0.7914  0.000
88    15   1  MST    8 0.7914  0.000
89    15   1 MSCT    1 1.2503  0.266
90    15   1 MSCT    2 1.2503  0.402
91    15   1 MSCT    6 1.2503  0.000
92    15   1 MSCT    8 1.2503  0.000
93    15   1  MBT    1 0.7691  0.362
94    15   1  MBT    2 0.7691  0.850
95    15   1  MBT    6 0.7691  0.000
96    15   1  MBT    8 0.7691  0.000
97    15   1 MBCT    1 1.7025  0.232
98    15   1 MBCT    2 1.7025  0.462
99    15   1 MBCT    6 1.7025  0.000
100   15   1 MBCT    8 1.7025  0.000
101   15   2    S    1 0.6142  0.084
102   15   2    S    2 0.6142  0.060
103   15   2    S    6 0.6142  0.000
104   15   2    S    8 0.6142  0.000
105   15   2  MST    1 1.0184  0.318
106   15   2  MST    2 1.0184  0.638
107   15   2  MST    6 1.0184  0.000
108   15   2  MST    8 1.0184  0.000
109   15   2 MSCT    1 1.0176  0.177
110   15   2 MSCT    2 1.0176  0.343
111   15   2 MSCT    6 1.0176  0.000
112   15   2 MSCT    8 1.0176  0.000
113   15   2  MBT    1 1.6684  0.311
114   15   2  MBT    2 1.6684  0.461
115   15   2  MBT    6 1.6684  0.000
116   15   2  MBT    8 1.6684  0.000
117   15   2 MBCT    1 2.1278  0.201
118   15   2 MBCT    2 2.1278  0.489
119   15   2 MBCT    6 2.1278  0.000
120   15   2 MBCT    8 2.1278  0.000
121   18   1    B    1 3.0669  0.233
122   18   1    B    2 3.0669  0.482
123   18   1    B    6 3.0669  0.000
124   18   1    B    8 3.0669  0.000
125   18   1  MST    1 1.1641  0.208
126   18   1  MST    2 1.1641  0.201
127   18   1  MST    6 1.1641  0.000
128   18   1  MST    8 1.1641  0.000
129   18   1 MSCT    1 1.0183  0.108
130   18   1 MSCT    2 1.0183  0.303
131   18   1 MSCT    6 1.0183  0.000
132   18   1 MSCT    8 1.0183  0.000
133   18   1  MBT    1 1.2028 -0.041
134   18   1  MBT    2 1.2028 -0.004
135   18   1  MBT    6 1.2028  0.000
136   18   1  MBT    8 1.2028  0.000
137   18   1 MBCT    1 1.6395  0.072
138   18   1 MBCT    2 1.6395  0.234
139   18   1 MBCT    6 1.6395  0.000
140   18   1 MBCT    8 1.6395  0.000
141   18   2    S    1 0.5858  0.466
142   18   2    S    2 0.5858  0.336
143   18   2    S    6 0.5858  0.000
144   18   2    S    8 0.5858  0.000
145   18   2  MST    1 1.5694  0.272
146   18   2  MST    2 1.5694  0.257
147   18   2  MST    6 1.5694  0.000
148   18   2  MST    8 1.5694  0.000
149   18   2 MSCT    1 1.1295  0.523
150   18   2 MSCT    2 1.1295  0.521
151   18   2 MSCT    6 1.1295  0.000
152   18   2 MSCT    8 1.1295  0.000
153   18   2  MBT    1 1.7526  0.105
154   18   2  MBT    2 1.7526  0.118
155   18   2  MBT    6 1.7526  0.000
156   18   2  MBT    8 1.7526  0.000
157   18   2 MBCT    1 1.6924  0.320
158   18   2 MBCT    2 1.6924  0.387
159   18   2 MBCT    6 1.6924  0.000
160   18   2 MBCT    8 1.6924  0.000
绘图的代码是
rate$Temp <- as.character(rate$Temp)
rate$Week <- as.character(rate$Week)
rate$Rep <- as.character(rate$Rep)
xyplot(Rate~Weight|Rep+Temp, groups=Week, rate,auto.key=list(columns=2), as.table=TRUE, xlab=\"Weight (gr)\", ylab=\"Rate (umol/L*gr)\", main=\"All individuals and Treatments at all times\")
但这给了我所有的符号,所以我需要用不同的符号来绘制每个集合。     
已邀请:
        我喜欢使用主题机制来做到这一点。黑白主题默认情况下将使用不同的符号;你得到这样的:
bwtheme <- standard.theme(\"pdf\", color=FALSE)
或者,您可以从颜色主题开始,然后根据需要修改点,如下所示。
mytheme <- standard.theme(\"pdf\")
mytheme$superpose.symbol$pch <- c(15,16,17,3)
mytheme$superpose.symbol$col <- c(\"blue\",\"red\",\"green\",\"purple\")
p4 <- xyplot(Rate~Weight|Rep+Temp, groups=Week, data=rate,
  as.table=TRUE,
  xlab=\"Weight (gr)\", ylab=\"Rate (umol/L*gr)\",
  main=\"All individuals and Treatments at all times\",
  strip=strip.custom(strip.names=1),
  par.settings=mytheme,
  auto.key=list(title=\"Week\", cex.title=1, space=\"right\")
)
或者,如果您希望将所有内容都换成一行,只需将要更改的内容传递到
par.settings
xyplot(Rate~Weight|Rep+Temp, groups=Week, data=rate,
  as.table=TRUE,
  xlab=\"Weight (gr)\", ylab=\"Rate (umol/L*gr)\",
  main=\"All individuals and Treatments at all times\",
  strip=strip.custom(strip.names=1),
  par.settings=list(superpose.symbol=list(
                      pch=c(15,16,17,3),
                      col=c(\"blue\",\"red\",\"green\",\"purple\"))),
  auto.key=list(title=\"Week\", cex.title=1, space=\"right\")            
)
建议不要直接更改ѭ6和ѭ7,因为这些解决方案在构造钥匙时也必须进行更改。 另外两点可能对您有所启发:首先,尝试使用
factor
代替
as.character
;这将按照正确的顺序整理您的星期。您可以使用
within
减少键入次数。
rate <- within(rate, {
  Temp <- factor(Temp)
  Week <- factor(Week)
  Rep <- factor(Rep)
}
其次,检查
latticeExtra
软件包中的
useOuterStrips
功能。特别是如果您的原始地块另存为
p
,请尝试
useOuterStrips(p, strip=strip.custom(strip.names=1),
                  strip.left=strip.custom(strip.names=1) )
    
        我发现了一种无需更改主题即可更改字符的方法,只需向图中添加更多代码,如下所示
xyplot(Rate~Weight|Rep+Temp, groups=Week, rate,
 pch=c(15,16,17,3), #this defines the different plot symbols used
 col=c(\"blue\",\"red\",\"green\",\"purple\"), # this defines the colos used in the plot 
 as.table=TRUE,
 xlab=\"Weight (gr)\", ylab=\"Rate (umol/L*gr)\",
 main=\"All individuals and Treatments at all times\",
 strip=strip.custom(strip.names=1), #this changes what is displayed in the strip
 key= list(text=list(c(\"Week\",\"1\",\"2\",\"6\",\"8\")),
 points=list(pch=c(NA,15,16,17,3),col=c(NA,\"blue\",\"red\",\"green\",\"purple\")),
 space=\"right\")#this adds a complete key
 )
    

要回复问题请先登录注册