2016-03-16 4 views
3

настоящее время я использую ggplot2 и tikzDevice пакетов АиРа для создания графики и ввести их в LaTeX документах, но я борюсь с результирующими большими белыми промежутками между цифры и надпись, как вы можете увидеть, если сравнить изображения (я вручную осветили пространство, чтобы сделать его более ясным):Слишком много белого пространства между заголовком и фигурой производимого tikzDevice и ggplot2 в LaTeX

ggplot2 plot tikz plot

Вот мой MWE:

Код R:

library(ggplot2) 
library(tikzDevice) 

set.seed(1) 
x <- rnorm(200) 

tikz(file = "Rplots.tex", width = 4, height = 4) 
qplot(x, geom = "histogram") 
dev.off() 

и код LaTeX:

\documentclass{article} 
\usepackage{tikz} 

\begin{document} 

\begin{figure} 
\centering 
\include{Rplots} 
\caption{\texttt{ggplot2} plot.} 
\end{figure} 

\begin{figure} 
\centering 
\begin{tikzpicture}[scale=3] 
    \clip (-0.1,-0.2) 
    rectangle (1.8,1.2); 
    \draw[step=.25cm,gray,very thin] 
    (-1.4,-1.4) grid (3.4,3.4); 
    \draw (-1.5,0) -- (2.5,0); 
    \draw (0,-1.5) -- (0,1.5); 
    \draw (0,0) circle (1cm); 
    \filldraw[fill=green!20!white, 
    draw=green!50!black] 
    (0,0) -- (3mm,0mm) 
    arc (0:30:3mm) -- cycle; 
\end{tikzpicture} 
\caption{\texttt{tikz} plot.} 
\end{figure} 

\end{document} 

Я хотел бы знать, как избавиться от большого пространства между заголовком и фигурой черезggplot2.

PS. R версия: 3.2.3, ggplot2 версия: 2.1.0, tikzDevice версия: 0.10-1. Я взял код для второго сюжета от Tobias Oetiker's Не так короткое введение в LaTeX 2e, версия 5.05, стр. 116.

+0

вы пробовали изменения маржи участка по теме ggplot2? Я до сих пор не вижу, как это специфично для устройства tikz. Если вы посмотрите на приведенный ниже пример, то точно такая же маржа получена для устройства pdf. – baptiste

ответ

1

это больше похоже на вопрос LaTeX; Я думаю, что стандартный способ настроить пространство, чтобы установить \abovecaptionskip

\documentclass{article} 
\usepackage{tikz} 
\setlength{\abovecaptionskip}{-15pt} 
\begin{document} 

\begin{figure} 
\centering 
\include{Rplots} 
\caption{\texttt{ggplot2} plot.} 
\end{figure} 

\end{document} 

enter image description here

+0

Спасибо за ваш ответ! Это сделало трюк, но оно изменило каждую фигуру в документе. По-видимому, только цифры tikz (насколько я могу видеть), созданные с помощью 'tikzDevice', имеют это огромное пустое пространство между ними и подписями, поэтому я подумал, что это может быть каким-то образом исправить это через' tikzDevice'. Я ошибаюсь? –

+0

Я не заметил необычно большого расстояния в приведенном выше примере. У вас есть пример, показывающий, что стандартное устройство pdf дает гораздо меньшие поля, чем графический вывод tikz для одного и того же сюжета? – baptiste

0

Я до сих пор не понимаю вашу проблему, но позвольте мне предложить этот полный пример, показывающий тот же интервал для tikz и стандартное pdf-устройство при использовании в документе knitr.

--- 
title: "Untitled" 
header-includes: 
- \usepackage{caption} 
output: 
    pdf_document: 
    fig_caption: yes 
--- 

First, we try this 


```{r pdf, echo=FALSE, dev='pdf', fig.height=2, fig.width=2, fig.cap='This is a standard graphic.'} 
library(ggplot2) 
ggplot() + theme(plot.background=element_rect(colour = "red")) 
``` 

Next, we try this 

```{r tikz, echo=FALSE, dev='tikz', fig.height=2, fig.width=2, fig.cap='This is a tikz graphic.'} 
ggplot() + theme(plot.background=element_rect(colour = "red")) 
``` 

\newpage 

## Fixing space 

\captionsetup{skip=0pt} 

```{r pdf2, echo=FALSE, dev='pdf', fig.height=2, fig.width=2, fig.cap='This is a standard graphic.'} 
library(ggplot2) 
ggplot() + theme(plot.background=element_rect(colour = "red")) 
``` 

```{r tikz2, echo=FALSE, dev='tikz', fig.height=2, fig.width=2, fig.cap='This is a tikz graphic.'} 
ggplot() + theme(plot.background=element_rect(colour = "red")) 
``` 

enter image description here

enter image description here

+0

Привет, баптист, извините за поздний ответ. Я обновил свой вопрос, чтобы сделать проблему более ясной. –