Plotsizes:使用 R 中的 ggplot2 绘图并使用 tikzdevice

Plotsizes:使用 R 中的 ggplot2 绘图并使用 tikzdevice

我对 R 和 LaTeX 完全是个新手,现在正试图写我的硕士论文……我试图通过以下方式得到答案cran.r-项目...但我失败了... :(

我正在通过 ggplot2 在 R 中创建图,并通过 tikzDevice 将它们转换为 TeX 格式。

现在,我的许多图的右侧都有一个图例,其大小有所不同(当然取决于图例的标题和文本)。

如果我现在使用转换我的 Rplot

tikz(file = "my_output_file.tex", standAlone=F,width = 6, height = 4)

它仅缩放其创建的整个图像的尺寸。

我想要的是:所有地块的矩形地块本身的尺寸始终相同......

我的 Rscript 带有一些测试数据:

library(ggplot2)
library(scales)
require(grid)
library(tikzDevice)


#setting time zone
options(tz="Europe/Berlin")

tikz(file = "my_output_file.tex", standAlone=F,width = 6, height = 3)


cars['dt'] = seq(Sys.Date(),Sys.Date()-980,-20)
plot <- ggplot(cars,aes(y=speed,x=dist,color=as.integer(dt)))+
               geom_point(size=2,alpha=0.7)+
               xlab("distance")+
               ylab("speed")+
               scale_color_gradientn("dt",
                                     colours=rainbow(6)
                                     )+

#textsize
theme_bw()+
theme(legend.position="right",
      legend.key.height=unit(2,"lines"),
      legend.title=element_text(size=rel(0.8)),
      legend.text=element_text(size=rel(0.8)),
      axis.text.y=element_text(angle=90, 
                               hjust=0.5),
      axis.title=element_text(size=rel(0.8))

print(plot)

dev.off()

大小不一

我希望有人可以帮助我,或者给我提供我需要的信息......

- - - - 编辑: - - - -

我设法通过输入来设置图的大小相等

aspect.ratio = 2/(1+sqrt(5))

到我的Rplot的主题()。

那么,为什么 LaTex 仍然无法正确定位呢?

不居中

这是我的 LaTeX 代码:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{figure}[h]
    \setlength{\abovecaptionskip}{-15pt} 
    \raggedright
    \input{my_output_file1.tex}
    \caption{Some long and useful Caption text}
    \label{plot:cars}
\end{figure}


\begin{figure}[h]
    \setlength{\abovecaptionskip}{-15pt} 
    \raggedright
    \input{my_output_file2.tex}
    \caption{Some even longer and more useful Caption text, just to see how it looks like}
    \label{plot:cars2}
\end{figure}
\end{document}

我已经尝试用 flush- 替换 raggedright,尝试将 [h] 替换为 \begin{figure}[l]...当我设置 \centering 时,绘图位置甚至没有改变。

也尝试过使用 op <- par(mar = rep(1, 4)) 的几个不同值来消除绘图周围可能出现的空白……但它根本没有改变……

我遗漏了什么?为什么它明显向右对齐?

答案1

可以使用以下方法调节绘图大小

aspect.ratio = 2/(1+sqrt(5)

如上所述这里 (在上面的评论中,我复制了错误的来源。抱歉。)

在代码中:

tikz(file = "my_output_file1.tex", 
     standAlone=F,
     width = 7, 
     height = 3,
     )

cars['dt'] = seq(Sys.Date(),Sys.Date()-980,-20)

plot1 <- ggplot(cars,aes(y=speed,x=dist,color=as.integer(dt)))+
               geom_point(size=2,alpha=0.7)+
               xlab("distance")+
               ylab("speed")+
               scale_color_gradientn("dt",
                                     colours=rainbow(6)
                                     )+

#textsize

               theme_bw()+
               theme(legend.position="right",
                     legend.key.height=unit(2,"lines"),
                     legend.title=element_text(size=rel(0.8)),
                     legend.text=element_text(size=rel(0.8)),
                     axis.text.y=element_text(angle=90, 
                                              hjust=0.5),
                     axis.title=element_text(size=rel(0.8)),

                     aspect.ratio = 2/(1+sqrt(5))
                    ) 

print(plot1)     

dev.off()

关于定位……还在疑惑……

相关内容