2016-11-28 1 views
0

私は格子が新しく、y値が電流を表すボックスプロットを作成する必要があります。データは、1/24〜8/1の範囲の異なる比率で整形される。幸いにもプロットすると、実際の比率を尊重するためにボックスの相対的な位置が得られます。私が達成しようとしているのは、 "0.04166667"、0.08333333などの代わりに "1/24"、1/12などのようなxラベルを使うことです。コードの例を見ることができます。私はパネルの機能の中で違ったアプローチを試し、スケールの議論も模索しました。データは調整され、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'パッケージの' fractions'機能( 'ライブラリ(MASS)を')を参照してください – DaveTurek

+0

ありがとうございました。それは仕事です。 – DorinPopescu

答えて

0

ここではの代わりにxyplotを使用し、内部で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

関連する問題