質問

各バー(格子)の各バーの値を各バーの上部に配置したいと思います。ただし、これを達成できるオプションは見つかりません。軸のオプションのみを見つけることができます。

役に立ちましたか?

解決

カスタムパネル関数を作成します

library("lattice")
p <- barchart((1:10)^2~1:10, horiz=FALSE, ylim=c(0,120),
              panel=function(...) { 
                args <- list(...)
                panel.text(args$x, args$y, args$y, pos=3, offset=1)
                panel.barchart(...)
              })
print(p)

lattice barchart with labels

他のヒント

私は新しいものを使うことを提案したでしょう DirectLabelsパッケージ, 、格子とggplotの両方で使用できます(そして、これらのラベル付けの問題では人生を非常に簡単にします)が、残念ながらバーチャートでは動作しません。

とにかくこれをしなければならなかったので、@Alex Brownが示唆する線に沿って、ここに近くに描かれたITコードサンプルがあります(スコアは何らかの種類の2D配列であり、グループ化されたベクトルに変わります) :

barchart(scores, horizontal=FALSE, stack=FALSE, 
     xlab='Sample', ylab='Mean Score (max of 9)',
     auto.key=list(rectangles=TRUE, points=FALSE),
     panel=function(x, y, box.ratio, groups, errbars, ...) {
         # We need to specify groups because it's not actually the 4th 
         # parameter
         panel.barchart(x, y, box.ratio, groups=groups, ...)
         x <- as.numeric(x)
         nvals <- nlevels(groups)
         groups <- as.numeric(groups)
         box.width <- box.ratio / (1 + box.ratio)
         for(i in unique(x)) {
             ok <- x == i
             width <- box.width / nvals
             locs <- i + width * (groups[ok] - (nvals + 1)/2)
             panel.arrows(locs, y[ok] + 0.5, scores.ses[,i], ...)
         }
     } )

私はこれをテストしていませんが、重要なビット(パネル関数内のlocなどを決定する部分)が機能します。それを理解するのが難しい部分です。私の場合、私は実際にパネルを使用してエラーバー(恐怖!)を作成していました。ただし、SCORES.SESは、スコアと同じ次元の配列であることを意図しています。

私は後でこれをきれいにしようとします - しかし、他の誰かが望んでいるなら、私はそれに満足しています!

あなたが使用している場合 groups パラメーター @RCSのコードにラベルがすべて互いに着陸します。これは、panel.textを拡張してpanel.barchartのように動作するように修正できます。これは、Rを知っていれば十分に簡単です。

ライセンスの理由でここに修正のコードを投稿することはできません。ごめんなさい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top