0

アロハ -

一連のヒストグラムを作成していますが、分布の平均値を示す垂直線とサンプル サイズを示すテキスト ラベルを追加したいと考えています。私のコードは次のとおりです。

BIN_WIDTH <- 1 #desired bin width
print(histogram(~ Length..cm. | Method, #create and print the histogram and save to variable "graph"
data = hist.data[hist.data$Scientific_name == "Pristipomoides filamentosus",], 
nint = (max(hist.data$Length..cm.) - min(hist.data$Length..cm.)+1)/BIN_WIDTH,
layout = c(1,2),
type = "density",
main = "Length-Frequency of Pristipomoides filamentosus by Gear",
xlab = "Length (cm)",
panel = function(x, ...){
    panel.histogram(x,...)
    panel.mathdensity(dmath = dnorm, col = "red",
                       args = list(mean = mean(x), sd= sd(x)), ...)    
}
))

これは の直後に挿入されたpanel.ablineand関数を使用して行われると想定しましたが、これは機能していないようです。私は何を間違っていますか?誰かがダミーの垂直線 (例: x=10) とダミーのテキストのコードを教えてくれれば、平均とサンプル サイズの式を簡単に挿入できます。panel.textpanel.histogram

4

1 に答える 1

0

panel.lines()とが必要ですpanel.text()。たとえば、次の関数は棒グラフに水平線を配置し、それにテキストで注釈を付けるだけでなく、カスタマイズされた凡例を配置します。

function () {
    trellis.device(width = 5, height = 5, new = F)
    xx <- GERD95.06
    xx$Country <- c("USA", "Singapore", "Denmark", "Australia", 
        "NZ")
    barchart(X1995 + X2006 ~ reorder(Country, xx$X2006), data = xx, 
        ylab = "GERD per capita, nominal $US PPP", cex = 0.8, 
        panel = function(...) {
            panel.lines(c(0.7, 5), c(720, 720), col = "gray", 
                lwd = 4)
            panel.text(lab = "OECD avg 2006", x = 1, y = 750, 
                adj = c(0.4, 0), cex = 0.7)
            panel.text(lab = "NZ at 2.5% of GDP", x = 1, y = 630, 
                adj = c(0.4, 0), cex = 0.7)
            panel.text(lab = "1995", x = 1.5, y = 900, adj = c(1, 
                0.5))
            panel.rect(xleft = 1.6, xright = 2, ybottom = 870, 
                ytop = 930, col = 3)
            panel.text(lab = "2006", x = 1.5, y = 1000, adj = c(1, 
                0.5))
            panel.rect(xleft = 1.6, xright = 2, ybottom = 970, 
                ytop = 1030, col = 8)
            panel.barchart(..., col = c(3, 8))
            panel.rect(xleft = 1, xright = 1.3333, ybottom = xx$X2006[xx$Country == 
                "NZ"], ytop = 2.5/1.206 * xx$X2006[xx$Country == 
                "NZ"])
        }, ylim = c(0, 1200))
}

...グラフを生成します:

ここに画像の説明を入力

于 2013-05-21T05:18:04.810 に答える