這裏是我想繪製的一個小例子(2組和2子組,僅僅爲了簡單,但是我可能有n組和k子組)。使用r縮放水平和垂直線/刻度圖(地圖)使用r
grp <- c( 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,2, 2, 2,2, 2, 2, 2, 2)
sgrp <- c("A", "A", "A", "A", "A", "B", "B", "B", "B" , "A", "A", "A", "A",
"B", "B", "B", "B", "B")
pos <- c(1.1, 2.1, 3.2, 4.1, 5.0,1.1, 2.0, 5.0, 6.2,1.0, 3.0, 4.1, 5.0,1.0,
2.1, 3.01, 4.0, 5.02)
mydf <- data.frame (grp, sgrp, pos)
grp sgrp pos
1 1 A 1.10
2 1 A 2.10
3 1 A 3.20
4 1 A 4.10
5 1 A 5.00
6 1 B 1.10
7 1 B 2.00
8 1 B 5.00
9 1 B 6.20
10 2 A 1.00
11 2 A 3.00
12 2 A 4.10
13 2 A 5.00
14 2 B 1.00
15 2 B 2.10
16 2 B 3.01
17 2 B 4.00
18 2 B 5.02
名次判定其中蜱需要在x軸。中心線(長線)從零開始到grp + 1的最大位置結束。是否可以製作這樣的圖形?
最終圖表應該什麼樣子:
編輯: 這裏有個小竅門,我可以做,但沒有達到(不關閉)我想做什麼:
dgp <- c(0, 0, 0, 0, 0, 0.15, 0.15,0.15, 0.15 , 0, 0, 0, 0,
0.15, 0.15, 0.15, 0.15, 0.15)
mydf$dumv <- grp + dgp
plot(mydf$pos, mydf$dumv, pch = "+", ylab = "groups", xlab = "pos")
再次更新:,有一些想法,但問題的存在:
require(ggplot2)
grp <- c( 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,2, 2, 2,2, 2, 2, 2, 2)
sgrp <- c("A", "A", "A", "A", "A", "B", "B", "B", "B" , "A", "A", "A", "A",
"B", "B", "B", "B", "B")
position <- c(1.1, 2.1, 3.2, 4.1, 5.0,1.1, 2.0, 5.0, 6.2,1.0, 3.0, 4.1, 5.0,1.0,
2.1, 3.01, 4.0, 5.02)
mydf <- data.frame (grp, sgrp, pos)
dgp <- c(0, 0, 0, 0, 0, 0.15, 0.15,0.15, 0.15 , 0, 0, 0, 0,
0.15, 0.15, 0.15, 0.15, 0.15)
mydf$barheight <- c(0.25)
mydf$group <- grp + dgp
ggplot(mydf) +
geom_line(aes(position, factor(group), group = factor(group)),
size = 2, colour = "purple") +
geom_rect(aes(y = factor(group),
xmin = position - 0.02,
xmax = position + 0.02,
ymin = group - barheight/2,
ymax = group + barheight/2))
問題:.... (1)我不能讓組非要素,矩形現在的位置是放錯了地方,我希望把A,B旁邊彼此之間1和2之間的差距。
(2)在實際數據中,我將有兩個以上的組,我可以自動計算dgp。
它肯定聽起來像你問我們,使這個圖形_for_你。一般來說,SO的目的是回答你遇到的具體問題,同時試圖自己編寫代碼。你能告訴我們到目前爲止你有多遠? – joran 2012-07-05 18:43:33
@joran對不起,如果它出現這樣,和我有限的知識...看到的點,我可以作爲編輯...沒有錯誤消息報告,除非我知道如何做下一步... – fprd 2012-07-05 19:00:35
I希望看到ggplot解決方案... – fprd 2012-07-06 10:30:07