LaTeX를 R 그림으로 가져오기
덧붙이고 싶은 것은LaTeX
유형:플롯 요소 설정R
(예: 제목, 축 레이블, 주석 등)의 조합을 사용합니다.base/lattice
또는 와 함께ggplot2
.
질문:
- 당신이 할 수 있는 방법이 있습니까?
LaTeX
이 패키지를 사용하는 플롯으로, 그리고 만약 그렇다면, 그것은 어떻게 이루어집니까? - 그렇지 않은 경우 이를 수행하기 위해 추가 패키지가 필요합니까?
예를 들어,Python matplotlib
컴필LaTeX
경유로text.usetex
여기서 논의된 패키지: http://www.scipy.org/Cookbook/Matplotlib/UsingTex
이러한 그림을 생성할 수 있는 유사한 프로세스가 있습니까?R
?
CRAN 패키지 라텍스2exp에는 다음이 포함되어 있습니다.TeX
LaTeX 공식을 R의 플롯 산술 표현식으로 변환하는 함수입니다.축 레이블, 범례 레이블 및 일반 텍스트와 같이 수학적 주석을 입력할 수 있는 모든 위치에서 사용할 수 있습니다.
예:
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)
다음은 을 사용한 예입니다.ggplot2
:
q <- qplot(cty, hwy, data = mpg, colour = displ)
q + xlab(expression(beta +frac(miles, gallon)))
여기서 도용한 것처럼, 다음 명령은 LaTeX를 올바르게 사용하여 제목을 그립니다.
plot(1, main=expression(beta[1]))
봐?plotmath
자세한 내용은
R: http://r-forge.r-project.org/projects/tikzdevice/ 에서 tikz 코드를 생성할 수 있습니다.
여기 제 연구실 보고서가 있습니다.
tickzDevice
수출품tikz
이미지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
여기에는 플롯 산술 기능을 사용할 수 있지만 문자 모드의 개체로 저장된 식을 사용할 수 있는 멋진 함수가 있습니다.이렇게 하면 붙여넣기 또는 정규식 함수를 사용하여 프로그래밍 방식으로 조작할 수 있습니다.저는 ggplot을 사용하지 않지만, 여기서도 작동할 것입니다.
express <- function(char.expressions){
return(parse(text=paste(char.expressions,collapse=";")))
}
par(mar=c(6,6,1,1))
plot(0,0,xlim=sym(),ylim=sym(),xaxt="n",yaxt="n",mgp=c(4,0.2,0),
xlab="axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)",
ylab="axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)")
tick.labels <- paste("x >=",(-9:9)/10)
# this is what you get if you just use tick.labels the regular way:
axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)
# but if you express() them... voila!
axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)
몇 년 전에 직접 .pdf 대신 .fig 형식으로 출력하여 이 작업을 수행했습니다. 라텍스 코드를 포함한 제목을 작성하고 최종 그래픽 파일을 만들기 위해 fig2ps 또는 fig2pdf를 사용합니다.R 2.5에서 이 작업을 수행해야 했던 설정이 깨졌습니다. 만약 다시 수행해야 한다면 tikz를 대신 조사하겠지만, 어쨌든 이것을 다른 잠재적인 옵션으로 여기에 포함하고 있습니다.
Sweave를 사용한 방법에 대한 제 메모는 여기 있습니다: http://www.stat.umn.edu/ ~arendahl/https.
그냥 해결책이 있어요.먼저 eps 파일을 생성한 다음 esp2pgf 도구를 사용하여 pgf로 다시 변환할 수 있습니다.http://www.texample.net/tikz/examples/eps2pgf/ 을 참조하십시오.
h <- rnorm(mean = 5, sd = 1, n = 1000) hist(h, main = expression(paste("Sampled values, ", mu, "=5, ", sigma, "=1")))
여기 https://stats.idre.ucla.edu/r/codefragments/greek_letters/ 의 매우 유용한 기사에서 발췌했습니다.
예를 들어 다음을 사용할 수 있습니다.
title(sub=TeX(sprintf(paste("Some latex symbols are ", r'(\lambda)', "and", r'(\alpha)'))))
은 LaTeX 표현포는것기억오시십하을함하음으로 묶어야 한다는 것을 하세요.paste()
r'()을 사용하여 명명된 개체를 추가할 수도 있습니다.paste()
기능.예.,
lambda_variable <- 3
title(sub=TeX(sprintf(paste(r'(\lambda=)', lambda_variable))))
이것을 하는 더 좋은 방법이 있을지는 모르겠지만, 위의 것들이 저에게 효과가 있었습니다 :)
언급URL : https://stackoverflow.com/questions/1395105/getting-latex-into-r-plots
'programing' 카테고리의 다른 글
내부 클래스에서 외부 클래스에 액세스하는 방법은 무엇입니까? (0) | 2023.06.30 |
---|---|
PL/SQL 패키지, 프로시저 또는 함수가 사용되고 있는지 어떻게 알 수 있습니까? (0) | 2023.06.30 |
Tomcat 또는 Jetty Production 등급이 내장된 Spring Boot입니까? (0) | 2023.06.30 |
ORA-01849: 시간은 1에서 12 사이여야 합니다. (0) | 2023.06.30 |
Angular 4 표현식이 확인된 후 변경됨 오류 (0) | 2023.06.30 |