2011-06-13 46 views
2

我試圖改變使用下面的數據如何更改格

> 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 
在xyplot使用格子的那種人物的繪製人物

爲繪製代碼

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") 

但這給我所有的符號作爲一個O,並且我需要使每個集合用不同的符號繪製。

回答

3

我發現改變字符不改變主題的方式如下

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 
) 
+1

對於'key',您可以使用'title =「Week」參數(例如'cex.title = 1'):'key = list(title =「Week」,cex.title = 1,text = list(c (「1」,「2」,「6」,「8」)),points = list(pch = c(15,16,17,3),col = c(「blue」,「red」,「green 「,」purple「)),space =」right「)'。 – Marek 2011-06-16 10:18:35

+0

@Marek的歡呼,因爲我不知道是否有更好的方式做:) – BDM 2011-06-16 11:00:14

+1

是的,你可以這樣做,但正如你注意到的,你必須改變顏色/點爲自己和點鑰匙。如果您使用主題機制,則您的密鑰將通過重新指定顏色/點來正確構建自己。 – Aaron 2011-06-16 14:27:26

4

我喜歡使用主題機制來做到這一點。黑白主題,默認會做不同的符號;你得到它是這樣的:

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")    
) 

這些解決方案建議在改變colpch直接因爲那時建立的關鍵時,他們也必須改變。

另外兩個注意事項,您可能會發現具有啓發性:首先,請嘗試使用factor而不是as.character;這將按適當的順序對你的周進行排序。使用within可以減少打字次數。

rate <- within(rate, { 
    Temp <- factor(Temp) 
    Week <- factor(Week) 
    Rep <- factor(Rep) 
} 

其次,檢查出在latticeExtrauseOuterStrips功能。特別是,如果您的原創情節保存爲p,嘗試,只是增加了一點代碼的情節

useOuterStrips(p, strip=strip.custom(strip.names=1), 
        strip.left=strip.custom(strip.names=1)) 
+0

哦,是的,'useOuterStrips'是我最喜歡的格子技巧之一。在「一行」中,OP可以做'useOuterStrips(xyplot(Rate〜Weight | ...))'。並很好地使用'auto.key'。 – Marek 2011-06-16 15:07:21