3

このコマンドが関数内で実行されると、ドットプロットを pdf に保存する際に問題が発生します。

通常どおり呼び出されると正常に動作します。

df <- data.frame(a = runif(10), b = runif(10), c = runif(10), x = 1:10)  
pdf("test.pdf")  
dotplot(a + b + c ~ x, data = df, type = "l", auto.key=TRUE)  
dev.off()

ただし、このコードが関数内にある場合は機能せず、空または空のファイルが作成されます。

plotFunc <- function(model)  
{  
    pdf("test.pdf")  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
    dev.off()  
}
plotFunc(df)

ただし、ファイル コマンドを使用せずに関数を呼び出すと、グラフィックス ウィンドウに正常に出力されます。

plotWinFunc <- function(model)  
{  
    dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE)  
}  
plotWinFunc(df)

これにより、ファイルに出力することになっている dotplot() で何か問題が発生すると思われます。ファイルの種類は関係ありません.bmpとpdfの両方で試しましたが、どちらの方法も機能しません。

ドットプロットをファイルに正常に書き込むにはどうすればよいですか? ラティス パッケージの特別なコマンドを使用する必要がありますか、それともどこかにエラーがありますか?

助けてくれてありがとう。

4

1 に答える 1

9

print() で dotplot をラップする必要があることに気付きました:

plotFunc <- function(model)    
{    
    pdf("test.pdf")    
    print(dotplot(a + b + c ~ x, data = model, type = "l", auto.key=TRUE))    
    dev.off()    
}  
plotFunc(df)

それで解決したようです。

于 2010-02-16T23:34:36.197 に答える