1

ヒストグラムを作成する次のコードがあります。

inst <- data.frame(c(10:27),c(76,97,128,135,137,141,110,94,67,44,39,26,19,12,7,5,2,1))
names(inst) <- c("instSize","noOfInst")
library(lattice)
trellis.par.set(theme = col.whitebg())

myplot <- xyplot(noOfInst ~ instSize, data = inst, 
             type = c("h", "g"), col = "blue",
             xlab = "Instance Size (Number of Aircraft)",
             ylab = "Number Of Instances",
             scales=list(
               y=list(
                 at=seq(0,150,10),
                 labels=seq(0,150,10) ),
               x=list(
                 at=seq(10,27,1),
                 labels=seq(10,27,1) )
             )
             )

y 軸の目盛りごとにグリッド線を追加し、垂直グリッド線をすべて削除したいと思います。それは可能ですか?

ありがとう

4

3 に答える 3

3
?panel.grid

myplot <- xyplot(noOfInst ~ instSize, data = inst
            , col = "blue",
             xlab = "Instance Size (Number of Aircraft)",
             ylab = "Number Of Instances",
          panel = function(x, y) {
           panel.grid(h = 16, v = 0)
           panel.xyplot(x, y, type = "h")
                                 },
             scales=list(
               y=list(
                 at=seq(0,150,10),
                 labels=seq(0,150,10) ),
               x=list(
                 at=seq(10,27,1),
                 labels=seq(10,27,1) )
             )
             )
myplot
于 2013-08-12T20:35:16.263 に答える
2
myplot <- xyplot(noOfInst ~ instSize, data = inst, 
                 type = "h", col = "blue",
                 xlab = "Instance Size (Number of Aircraft)",
                 ylab = "Number Of Instances",
                 scales=list(
                   y=list(
                     at=seq(0,150,10),
                     labels=seq(0,150,10) ),
                   x=list(
                     at=seq(10,27,1),
                     labels=seq(10,27,1) )
                 ),
                 panel=function(...){
                   panel.abline(h=seq(0,150,10))
                   panel.xyplot(...)
                 }
)

col関数内で定義することにより、水平線の色を変更できpanel.abline()ます。

于 2013-08-12T20:30:39.387 に答える
0

両方ありがとう。将来誰かが同じ問題を抱えている場合に備えて、最後に私がしたことは次のとおりです。

myplot <- xyplot(noOfInst ~ instSize, data = inst, 
             type = c("h"), col = "blue",
             xlab = "Instance Size (Number of Aircraft)",
             ylab = "Number Of Instances",
             panel=function(...){
               panel.abline(h=seq(0,150,10),col="grey")
               panel.xyplot(...)
             },
             scales=list(
               y=list(
                 at=seq(0,150,10),
                 labels=seq(0,150,10) ),
               x=list(
                 at=seq(10,27,1),
                 labels=seq(10,27,1) )
             )
             )

これは多かれ少なかれデインの答えですが、指摘したいことが2つあります。

  • 関数内のコマンドの順序

    panel.xyplot(...) panel.abline(h=seq(0,150,10)) は、データの上にグリッド線を配置します。

  • タイプリストから「g」を削除しないと、垂直グリッド線が引き続き描画されます

于 2013-08-12T20:47:33.927 に答える