0

Rで関数のグラフィックを作成したい.コードは次のとおりです。

 x <- seq(from=0, to=1, by=0.00001)
 f <- function(x) ....
 y <- f(x)
 plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5)
 min(y)
 [1] 0.2291203
 max(y)
 [1] 0.7708797
  1. グラフィックをRGuiからbmpで保存するとこんな感じでこれでOK。それをepsとして保存し、LaTeXに含めると:

    \begin{figure}[htbp]
    \centering
        \includegraphics[scale=0.4]{./images/f-probart.eps}
    \end{figure}
    

    ここのスクリーン キャプチャに示すように、歪んでい ます。何が問題なのですか? 結果のepsもIrfanViewで歪んで表示されるため、epsでRGuiからエクスポートすることに問題があると思います。したがって、間違っているのはLaTeXインクルージョンコードではないと思います...

  2. 要求された解像度、たとえば 244 dpi でこのグラフィックを作成するにはどうすればよいですか? 特定の解像度で eps をエクスポートできる別のパッケージ/関数はありますか?

ありがとう

4

2 に答える 2

2

私はあなたのエラーを再現できないので、それはあなたのシステムに固有のものだと思います. eps として保存し、(graphicx パッケージを使用して) latex に含めると、すべて正常に動作します。R で postscript() 関数を使用した場合は、画像の幅と高さも指定する必要があることに注意してください。私は間違っている可能性がありますが、R のグラフィックス ウィンドウのデフォルト値にデフォルト設定されていると思います (これにより、eps 画像の寸法が説明される可能性があります)。

グラフィック ウィンドウから保存した場合は、通常、グラフィック ウィンドウの現在の幅と高さを使用する必要があります。私のRバージョンではそうですが、オプションの設定が異なっているのではないでしょうか? ps.options() をチェックして、幅と高さの値が 0 かどうかを確認します。そうでない場合は、問題である可能性があります。

余談ですが、代わりに pdf を使用できます。R の ?pdf を参照してください。画像の幅と高さを指定でき、Latex で正しく再現されます。その場合、ファイルのビルドには pdftex を使用する必要があります。

私の経験では、pdf グラフィックスと pdftex を使用する方が、PS を通過するよりも問題が少ないということです。実際、ラテックスでは、適切な pdf に到達するために eps を通過する必要はもうありません。pdftex を使用するもう 1 つの利点は、同じドキュメント内のすべてのグラフィック形式を簡単に組み合わせることができることです。(EPS の場合、epstopdf パッケージが必要です)

2) dpi 要件はグリッド イメージにのみ有効です。ベクトル化された eps および pdf には有効ではありません。私は png を使用します。これは、グラフに最適な形式です。関数 png() のオプション res を参照してください。

 png("somefile.png",res=244)
 plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5)
 dev.off()

または、まったく同じ方法で、ビットマップ グラフィックスに関数 bmp() を使用することもできます。最後に dev.off() を忘れないでください。

于 2010-09-10T13:20:01.450 に答える
1

Cairo パッケージを使用しました。コードは次のとおりです。

    Cairo(24000,24000,file="a.ps",type="ps",bg="transparent",pointsize=12, units="px", dpi=2400)
    plot(x, y, xlab="x", ylab="f(x)", pch=16, cex=0.5, type='l')
    dev.off()

結果のグラフはきれいに見えました。ただし、1 つの質問: @Joris Meys によると、dpi はベクター グラフィックスには役に立ちません。この場合、Cairo 関数に dpi を指定する必要があるのはなぜですか?

于 2010-09-10T20:47:12.553 に答える