質問

を使い始めSweaveいます。しかし、ほとんどの人に出会ったか大きな問題:高速になります。Sweaving大文の年齢プロセスにはtermシグナルを効率的に作業である。データ処理を促進させることができ大cacheSweave.しかし、プロット図は、特にggplot;)-いまだに長すぎて描画するこの方法を利用したいpgfSweave.

後に多くの、多くの時間、やっと成功の設定、誰もが働きやすい職場づくりEclipse/StatET/Texlipse.そのために変換し、既存の報告に使用しpgfSweaveた悪巧もっggplotsな仕事です。以下のプロット図の例ではコンビニエンスストアでのコンソールには、Sweave:

pl <- ggplot(plot_info,aes(elevation,area))
pl <- pl + geom_point(aes(colour=que_id))
print(pl)

走でpgfSweaveしており、このエラー:

Error in if (width > 0) { : missing value where TRUE/FALSE needed
In addition: Warning message:
In if (width > 0) { :
  the condition has length > 1 and only the first element will be used
Error in driver$runcode(drobj, chunk, chunkopts) : 
  Error in if (width > 0) { : missing value where TRUE/FALSE needed

私は削除aes(...)からgeom_pointのプロットのコンビニエンスストアでのお支pgfSweave.

pl <- ggplot(plot_info,aes(elevation,area))
pl <- pl + geom_point()
print(pl)

編集:を行ったところに問題の削減を可能とする問題にtikz-装置です。

この作品は、イブレア城、イブレア:

quartz()
pl <- ggplot(plot_info,aes(elevation,area))
pl <- pl + geom_point(aes(colour=que_id))
print(pl)

これは上記のエラー:

tikz( 'myPlot.tex',standAlone = T )
pl <- ggplot(plot_info,aes(elevation,area))
pl <- pl + geom_point(aes(colour=que_id))
print(pl)
dev.off()

この作品は、イブレア城、イブレアなどの

tikz( 'myPlot.tex',standAlone = T )
pl <- ggplot(plot_info,aes(elevation,area))
pl <- pl + geom_point()
print(pl)
dev.off()

私が繰り返しこの5つの異なるggplots.を使用しない場合、これらの色は、アルファーは、...)のマッピングでtikz.

第1四半期:な人には、説明的に振る舞えるのでしょうか?

また、キャッシュのプロットコードを読ません。次のコードのチャンクの時間ですべてのSweave.とpgfSweaveで約10秒

<<plot.opts,echo=FALSE,results=hide,cache=TRUE>>=
#colour and plot options are globally set
pal1 <- brewer.pal(8,"Set1")
pal_seq <- brewer.pal(8,"YlOrRd")
pal_seq <- c("steelblue1","tomato2")
opt1 <- opts(panel.grid.major = theme_line(colour = "white"),panel.grid.minor = theme_line(colour = "white"))
sca_fill_cont_opt <- scale_fill_continuous(low="steelblue1", high="tomato2")
ory <- geom_hline(yintercept=0,alpha=0.4,linetype=2) 
orx <- geom_vline(xintercept=0,alpha=0.4,linetype=2)
ts1 <- 2.3
ts2 <- 2.5
ts3 <- 2.8
ps1 <- 6
offset_x <- function(x,y) 0.15*x/pmax(abs(x),abs(y))
offset_y <- function(x,y) 0.05*y/pmax(abs(x),abs(y))
plot_size <- 50*50

このように見えるか不思議な行動として、いくつかの変数に設定しています。

Q2:もっと他のものとして説明す。

Q3:より一般的には、い場合も全く使用pgfSweave順調に進んでいるのでしょうか?とに成功しうるものはすべての作業SweaveもpgfSweave、追加の利益の素敵なフォントが迅速化されました。;)

多くの対応!

役に立ちましたか?

解決

第1四半期:なものでは説明でしょうか?

これらの三つの理由かtikzDeviceを与える場合にはエラーにしようと構築のためにプロット:

  • を追加するマッピングを生成する伝説など aes(colour=que_id),ggplot2利用の変数名としてのタイトルは伝説---この場合、que_id.

  • のtikzDeviceすべての文字列など、凡例のタイトルは、ラテックスのための組版.

  • にラテックスのアンダースコア文字、 _, 用を表す字を下付き文字に装飾します。場合にはアンダースコアを使用以外の数学モードでエラーが発生します。

がtikzDeviceしようと計算の高さと幅の伝説のタイトル、"que_id"での間に文字列をラテックスのための組版を期待しラテックスの幅と高さの文字列になります。ラテックスがエラーがあったことも理由の一つですがエスケープ解除アンダースコアに用いる文字列の外mathmode.のtikzDeviceを受け NULL 文字列の幅の代わりに多数の原因となる if (width > 0) チェックに失敗します。

な問題を回避するために

  1. 指定の伝説のタイトル用の追加カラーの規模:

    p1 <- ggplot(plot_info, aes(elevation, area))
    p1 <- p1 + geom_point(aes(colour=que_id))
    
    
    # Add a name that is easier for humans to read than the variable name
    p1 <- p1 + scale_colour_brewer(name="Que ID")
    
    
    # Or, replace the underscore with the appropriate LaTeX escape sequence
    p1 <- p1 + scale_colour_brewer(name="que\\textunderscore id")
    
  2. 使用文字列の除菌機能を導入tikzDevice0.5.0ものが壊れていたるまで0.5.2).現在、文字列除菌にのみの脱出には、以下の文字: %, $, {, }, は、 ^ デフォルトです。しかしご指定いただくことができます追加置換-ペアを介し tikzSanitizeCharacterstikzReplacementCharacters オプション:

    # Add underscores to the sanitization list
    options(tikzSanitizeCharacters = c('%','$','}','{','^', '_'))
    options(tikzReplacementCharacters = c('\\%','\\$','\\}','\\{',
      '\\^{}', '\\textunderscore'))
    
    
    # Turn on string sanitization when starting the plotting device
    tikz('myPlot.tex', standAlone = TRUE, sanitize = TRUE)
    print(p1)
    dev.off()
    

また出版0.5.3のtikzDeviceのカップルの週間のためのアドレスあ警告メッセージが表示さの変化により、Rを取り扱 system().を追加します以下、この次のバージョン:

  • よりよい警告メッセージが widthNULL することを示すであろうようにプロットします。

  • 追加すべきは異なっており、その文字のデフォルトの文字の文字列指消毒剤に見えます。

武器agiは、dexで下がらないboxerぐ!

他のヒント

Q2:私のmaintainerのpgfsweave.

この結果により試験を行った:

time R CMD Sweave time-test.Rnw 

real    0m1.133s
user    0m1.068s
sys     0m0.054s

time R CMD pgfsweave time-test.Rnw 

real    0m2.941s
user    0m2.413s
sys     0m0.364s

time R CMD pgfsweave time-test.Rnw 

real    0m2.457s
user    0m2.112s
sys     0m0.283s

ると思うが2の理由は、時間差ですが、しばらく仕事を行っています。う:

  • pgfSweaveなトンのチェックやダブルチェックをていることを確認してくださいませんやり直価計算.をつくることを目的とすることを可能なより高価な計算やプロット内の書きします。の規模に高価""その場合がありますが、追加、な確認をしています。

一例としてのキャッシュは、以下のテストファイルの真の利益のキャッシュ:

\documentclass{article}

\begin{document}

<<plot.opts,cache=TRUE>>=
x <- Sys.sleep(10)
@

\end{document}

その結果:

time R CMD Sweave time-test2.Rnw 

real    0m10.334s
user    0m0.283s
sys     0m0.047s

time R CMD pgfsweave time-test2.Rnw 

real    0m12.032s
user    0m1.356s
sys     0m0.349s

time R CMD pgfsweave time-test2.Rnw 

real    0m1.423s
user    0m1.121s
sys     0m0.266s
  • Sweaveを遂げた変更R2.12.の変化がピードを速めることができたのでローコードチャンクの評価および左pgfSweaveの背後にこれらの小さな計算が使えます。十分に検討する価値

Q3:使っていpgfSweave自分の時間を自分なります。あり方も変わってきていSweave R2.12いをもたらしているのが若干の問題pgfSweaveが新しいバージョンは今後のことです。の開発バージョンgithub( https://github.com/cameronbracken/pgfSweave 既に変化します。ある場合は追加の課題をやらせていただきたいと思います。

Q2:あなたは、グラフィックスチャンクのヘッダおよびオプション\pgfrealjobname{<DOCUMENTNAME>}external=TRUEを使用していますか? 私はスピード(ない最初のコンパイルのために、それ以降のもののためのグラフィックが変更されていない場合)多くのことを増加することを発見しました。あなたはpgfSweaveビネットでより多くの背景を見つけることができます。

Q3:。すべては私のために罰金を動作しますが、私はあなたのようなWindowsの+エクリプス/ StatEt / Texlipseを使用する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top