2016-11-28 14 views
0

我是新來的格子,我需要創建一個盒子圖,其中y值表示電流。數據以1/24至8/1的不同比率進行了分析。幸運的是,我繪製出相對於實際比例的方框。我試圖實現的是使用x-labels,如「1/24」,1/12等,而不是「0.04166667」,0.08333333等。您可以看到一個代碼示例。我在面板函數裏嘗試了不同的接近方法,並且探索了尺度參數。數據被調節並且產生4個面板。棘手的是,右側的面板和左側的面板有不同的x範圍。如何在lattice :: bwplot中設置一個盒子中的x標籤,它代表分數而不改變盒子的位置並避免長小數

代碼:

bwplot(current~factor(ac.ratio)|factor(constant.electrode)+factor(substrate), data=current.df, 
     scales=list(x=list(relation="free", 
          at=c(1/24, 1/12, 1/6, 1/3, 2/3, 1, 2, 4, 8), 
          labels = FALSE), 
        y="same"), 
     layout=c(2,2), index.cond=list(2:1, 2:1)) 

的是我獲得的一個例子是: enter image description here

而我需要的是類似於: enter image description here

同樣的位置在左面板必須重疊(如右圖所示)。這是我需要的(小組標題只是作爲例子,而不是最終)。非常感謝你。

+0

看到'MASS'包('庫(MASS)') – DaveTurek

+0

謝謝了'fractions'功能。這樣做的工作。 – DorinPopescu

回答

0

這是一個使用xyplot代替bwplot並在內部調用panel.bwplot的解決方案。我不得不手動調整box.width以獲得合理的結果。

library(lattice) 

dd <- data.frame(
    current = rnorm(200, 350, 50), 
    ac.ratio = sample(c(1/24, 1/12, 1/6, 1/3), 200, replace = TRUE), 
    substrate = gl(2, k = 100, labels = c("Acetate", "OECD")) 
) 

xyplot(current ~ ac.ratio | substrate, data = dd, box.width = 0.02, 
     scales = list(x = list(at = c(1/24, 1/12, 1/6, 1/3), 
           labels = c("1/24", "1/12", "1/6", "1/3"))), 
     panel = panel.bwplot, horizontal = FALSE) 

Imgur

相關問題