138

LaTeXと の組み合わせを使用して、プロットの要素R(例: タイトル、軸ラベル、注釈など)に組版を追加したいと思いbase/latticeますggplot2

質問:

  • LaTeXこれらのパッケージを使用してプロット に入る方法はありますか? もしそうなら、どのように行われますか?
  • そうでない場合、これを達成するために必要な追加のパッケージはありますか。

たとえば、ここで説明されているように、パッケージを介してPython matplotlibコンパイルします: http://www.scipy.org/Cookbook/Matplotlib/UsingTexLaTeXtext.usetex

でそのようなプロットを生成できる同様のプロセスはありRますか?

4

9 に答える 9

50

CRAN パッケージ latex2expTeXには、 LaTeX 式を R の plotmath 式に変換する関数が含まれています。軸ラベル、凡例ラベル、一般的なテキストなど、数学的な注釈を入力できる場所ならどこでも使用できます。

例えば:

x <- seq(0, 4, length.out=100)
alpha <- 1:5

plot(x, xlim=c(0, 4), ylim=c(0, 10), 
     xlab='x', ylab=TeX(r'($\alpha  x^\alpha$, where $\alpha \in \{1 \ldots 5\}$)'), 
     type='n', main=TeX(r'(Using $\LaTeX$ for plotting in base graphics!)', bold=TRUE))

for (a in alpha) {
  lines(x, a*x^a, col=a)
}

legend('topleft', 
       legend=TeX(sprintf(r'($\alpha = %d$)', alpha)), 
       lwd=1, 
       col=alpha)

は、このプロットを生成します。

于 2015-06-11T16:59:49.480 に答える
49

を使用した例を次に示しggplot2ます。

q <- qplot(cty, hwy, data = mpg, colour = displ)
q + xlab(expression(beta +frac(miles, gallon)))

代替テキスト

于 2009-09-12T01:11:16.553 に答える
39

hereから盗んだように、次のコマンドは LaTeX を正しく使用してタイトルを描画します。

plot(1, main=expression(beta[1]))

詳細については、を参照?plotmathしてください。

于 2009-09-08T18:32:05.377 に答える
15

R から tikz コードを生成できます: http://r-forge.r-project.org/projects/tikzdevice/

于 2009-09-08T18:31:24.037 に答える
6

これは私自身のラボ レポートからの抜粋です。

  • tickzDevicetikzの画像をエクスポートしますLaTeX
  • 場合によっては、次の R コードのようになる"\\"ことに注意してください。"\""$""$\""$z\\frac{a}{b}$" -> "$\z\frac{a}{b}$\"

  • また、xtable はテーブルをラテックスコードにエクスポートします

コード:

library(reshape2)
library(plyr)
library(ggplot2)
library(systemfit)
library(xtable)
require(graphics)
require(tikzDevice)

setwd("~/DataFolder/")
Lab5p9 <- read.csv (file="~/DataFolder/Lab5part9.csv", comment.char="#")

AR <- subset(Lab5p9,Region == "Forward.Active")

# make sure the data names aren't already in latex format, it interferes with the ggplot ~  # tikzDecice combo
colnames(AR) <- c("$V_{BB}[V]$", "$V_{RB}[V]$" ,  "$V_{RC}[V]$" , "$I_B[\\mu A]$" , "IC" , "$V_{BE}[V]$" , "$V_{CE}[V]$" , "beta" , "$I_E[mA]$")

# make sure the working directory is where you want your tikz file to go
setwd("~/TexImageFolder/")

# export plot as a .tex file in the tikz format
tikz('betaplot.tex', width = 6,height = 3.5,pointsize = 12) #define plot name size and font size

#define plot margin widths
par(mar=c(3,5,3,5)) # The syntax is mar=c(bottom, left, top, right).

ggplot(AR, aes(x=IC, y=beta)) +                                # define data set 
    geom_point(colour="#000000",size=1.5) +                # use points
    geom_smooth(method=loess,span=2) +                     # use smooth
    theme_bw() +                    # no grey background
    xlab("$I_C[mA]$") +                 # x axis label in latex format
    ylab ("$\\beta$") +                 # y axis label in latex format
    theme(axis.title.y=element_text(angle=0)) + # rotate y axis label
    theme(axis.title.x=element_text(vjust=-0.5)) +  # adjust x axis label down
    theme(axis.title.y=element_text(hjust=-0.5)) +  # adjust y axis lable left
    theme(panel.grid.major=element_line(colour="grey80", size=0.5)) +# major grid color
    theme(panel.grid.minor=element_line(colour="grey95", size=0.4)) +# minor grid color 
    scale_x_continuous(minor_breaks=seq(0,9.5,by=0.5)) +# adjust x minor grid spacing
    scale_y_continuous(minor_breaks=seq(170,185,by=0.5)) + # adjust y minor grid spacing
    theme(panel.border=element_rect(colour="black",size=.75))# border color and size

dev.off() # export file and exit tikzDevice function
于 2012-12-15T19:47:01.007 に答える
2

私は数年前に、.pdf に直接出力するのではなく、.fig 形式に出力することでこれを行いました。ラテックス コードを含むタイトルを記述し、fig2ps または fig2pdf を使用して最終的なグラフィック ファイルを作成します。これを行う必要があったセットアップは、R 2.5 で壊れました。もう一度やり直す必要がある場合は、代わりに tikz を調べますが、別の潜在的なオプションとしてここに含めています。

Sweave を使用してどのようにそれを行ったかについての私のメモはここにあります: http://www.stat.umn.edu/~arendahl/computing

于 2011-04-08T20:59:44.690 に答える