2

私はdoubleYScaleプロットを作成しました:

obj1 <- xyplot(Produktion ~ Year, datac1mw, type = "l",col="black")
obj2 <- xyplot(Summa.skulder ~ Year, datac1mw, type = "p",col="black")

hm=doubleYScale(obj1, obj2, add.ylab2 = TRUE,text = c("Produktion", "Summa.skulder"), 
             par.settings = simpleTheme(col = c('blue','black'), lty = 2:3))

私が得る結果は次のとおりです。 ここに画像の説明を入力してください

私が本当に欲しいのは、legend2本の線(現在は青と赤の線)ではなく、Produktion(左のy軸)が点線でSumma.Skulder(右のy軸)が線であるプロットです。伝説。

助言がありますか?よろしくお願いします

4

2 に答える 2

2

これは私にとってはうまくいきます:

library(lattice)
library(latticeExtra)
x <-1:10 # make data as I do not have yours
y <-1:10
z <-10:1

obj1 <- xyplot(y ~ x, type = "l",col="black")
obj2 <- xyplot(z ~ x, type = "p",col="black")

doubleYScale(obj1, obj2, add.ylab2 = TRUE)
update(doubleYScale(obj1, obj2, text = c("obj1", "obj2")),
par.settings = simpleTheme(col = c("black","black"), lty = 1:2))

ここに画像の説明を入力してください

これは、新しいコメントにあるように、凡例のポイントとラインを取得するために機能します。

obj1 <- xyplot(y ~ x, type = "l",col="black",key = simpleKey(col=c('black'),
           text=c("Produktion"),points=FALSE, lines=TRUE))
obj2 <- xyplot(z ~ x, type = "p",col="black",key = simpleKey(col=c('black'),
           text=c("Summa.skulder"),lines=FALSE,points= TRUE))

doubleYScale(obj1, obj2, add.ylab2 = TRUE,par.settings = simpleTheme(col =   
              c("black","black")))

ここに画像の説明を入力してください

于 2012-12-12T16:35:45.087 に答える
0

凡例の設定はobj1からのみ取得されます。したがって、obj1にキーパラメータを設定することをお勧めします。

obj2でパネル設定を行うことができます(オプションとして例を追加します)

foo <- list(x = 1:100, y = cumsum(rnorm(100)))
obj1 <- xyplot(y ~ x, foo,
               key = simpleKey(
                 text=c("Produktion", "Summa.skulder"),
                 col=c('blue','black'),points= FALSE,rectangles=TRUE,lines=TRUE))
obj2 <- xyplot(y^2 ~ x, foo
               , panel = function(...)panel.xyplot(type = "l",lty = 2,grid=TRUE,...))
## simple case: no axis for the overlaid plot
doubleYScale(obj1, obj2,add.ylab2 =TRUE)

ここに画像の説明を入力してください

于 2012-12-12T16:54:22.350 に答える