web-dev-qa-db-ja.com

軸ラベルの数式

Rでは、expression(theta[l])を使用して、プロット軸のラベルがLaTeXの$\theta_l$と同じになるようにします。美的理由から、$\theta_\ell$を表示したいと思います。手伝って頂けますか?

enter image description here


[〜#〜]編集[〜#〜]

以前、私はしました

plot(1:10, 1:10, xlab=expression(theta[l]))

結果の画像をPDFでエクスポートしました。次に、

\begin{figure}[htbp]
\centerline{\includegraphics[scale=.6]{test.pdf}}
\end{figure}

私の写真はLaTeXに挿入されました。

コメントに続いて、これが私が今していることです:

require(tikzDevice)
tikz("test.tex", standAlone=TRUE, width=5, height=5)

plot(1:10, 1:10, xlab="$\\theta_\\ell$")

dev.off()
tools::texi2pdf('test.tex')
system(paste(getOption('pdfviewer'),'test.pdf'))

しかし、結果のプロットをLaTeXに挿入すると、図の品質は以前ほど良くありません。他にできることはありますか?

17
Marco

このような単純な問題に対して、「tikzDevice」のように おそらくメンテナンスされていないパッケージ を使用する理由は実際にはありません。 'tikz'デバイスの問題の一部は、プロットの解像度を指定する 'xpinch'および 'ypinch'引数を正しく受け入れていないように見えることです。

プロットにLaTEX表記を追加することにはもっと大きな問題がありますが、このローカライズされた問題の場合、問題は、ベースの「plotmath」パッケージに筆記体の文字を表示するようにフォントを指定することです。

X軸ラベルのフォントを変更するには、plotコマンドからフォントを分離し、「title」関数内から次のようなカスタムフォントを選択します。

plot(1:10, 1:10, xlab="")
windowsFonts(script=windowsFont("Script MT Bold"))
title(xlab=expression(theta[l]), family="script")

最初にスペースを作成するために、plotコマンドでx軸にnullラベルを指定しました。次に、システムフォントを使用可能なフォントファミリにロードします(スクリプトMT式は太字が好きです)。最後に、「title」関数を使用してx軸ラベルをプロットします。そのラベルのテキストのファミリを指定します。

これにより、プロットデバイスの元の機能がすべて保持されるため、PDFに変換するときに解像度が低下することはありません。

demo of chart

'tikzDevice'パッケージ以外のLaTEX表記の問題に対する良い解決策があれば、ぜひ聞いてみてください。これをうまく行うための唯一の方法は、モデルを反転し、「tikz」LaTEXパッケージを使用してLaTEXファイル内からグラフィック全体を手動で描画するか、「pixmap」Rパッケージを使用して式の画像を描画することです。プロットの上部。どちらも完璧なアプローチのようには感じません。

9
Dinre

tikzDeviceisここに行く方法だと思います。 R-forgeからインストールできます。

install.packages("tikzDevice", repos="http://R-Forge.R-project.org")

Tikz/pgfの哲学は、タイプセットできるプロットを作成することです。あなたはおそらくこれらがあなたの文書と一致していることを望むでしょう。たとえば、同じパッケージ、フォント、フォントサイズなど

tikzの呼び出し内でこれらを設定するには、

ドキュメント宣言などのオプション

options(tikzDocumentDeclaration = "\\documentclass[10pt]{article}")

パッケージ

tikzLatexPackages(または同様のもの)

フォントサイズを制御することもできます。

これらすべての詳細は

?tikzDevice。


knitrを使用して、読み書きのできるプログラミングドキュメント(.rnw)内にプロットを作成することもできます。

この場合、tikzデバイスを使用して、ドキュメント全体と同じドキュメント宣言とヘッダー/パッケージを使用して、pdfが作成されます(external = TRUEとして)。

\documentclass[12pt,a4paper]{article}

\begin{document}

<<setup, include = FALSE>>=
opts_chunk$set(dev = 'tikz', external = TRUE)
@


<<myplot, fig.width=5, fig.height = 5, echo=FALSE>>=
plot(1:10, 1:10, xlab="$\\theta_\\ell$")
@

\end{document}
3
mnel

これはやや汚い解決策ですが、それはそれを作ります:

plot(1,1, xlab=expression(theta))
title(xlab="    \u2113",line=3.2,cex.lab=.7)

シータ記号を使用した最初のプロット。次に、フォントサイズが小さい\ ell記号を追加し、手動で位置を設定します。

enter image description here

1
Julián Urbano

回避策を見つけました ここ 。彼らは、エンコーディングを標準のpdfデバイスで機能させるための長いプロセスを説明しています。それ以外の場合は、 Cairo パッケージをインストールすることでCairoPDFデバイスを使用できます。次に、@JuliánUrbanoのソリューションを使用して、xlab="\u2113"のようなものがPDFに表示されます。式内の文字を使用することができませんでした。

1
StatGrrl