2015-04-23 2 views
6

Ich habe ein .Rnw Dokument, wo ich ein Plot von einem Plotstück mit mehreren Plots referenzieren möchte. Wie mache ich das?knitr: wie man einen Plot von einem Plotstück mit mehreren Plots referenziert

Beispiel:

\documentclass{article} 
\begin{document} 

<<single_chunk, fig.cap="hi">>= 
plot(1:5) 
@ 

I can reference this single chunk fine! See \ref{fig:single_chunk}. 

<<multichunk, fig.cap="hello">>= 
plot(1:10) 
plot(10:1) 
@ 

The first figure is great, but \ref{fig:multichunk}. Try again \ref{fig:multichunk-1}. 

\end{document} 

Beide Versuche ergeben ??.

Antwort

3

Schauen Sie sich einfach die generierte * .tex Datei an! Hier ist der relevante Teil (habe ich die Freiheit, die sie ausrichten ein bisschen mehr schön als knit tut):

\begin{knitrout} 
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe} 
\begin{alltt} 
\hlkwd{plot}\hlstd{(}\hlnum{1}\hlopt{:}\hlnum{10}\hlstd{)} 
\end{alltt} 
\end{kframe} 
\begin{figure} 
    \includegraphics[width=\maxwidth]{figure/multichunk-1} 
    \caption[hello]{hello} 
    \label{fig:multichunk1} 
\end{figure} 

\begin{kframe}\begin{alltt} 
\hlkwd{plot}\hlstd{(}\hlnum{10}\hlopt{:}\hlnum{1}\hlstd{)} 
\end{alltt} 
\end{kframe} 
\begin{figure} 
    \includegraphics[width=\maxwidth]{figure/multichunk-2} 
    \caption[hello]{hello} 
    \label{fig:multichunk2} 
\end{figure} 

Also, wenn Sie genau hinsehen, werden Sie feststellen, dass die Multiplot Zahlen genannt werden fig:multichunk1 und fig:multichunk2. Und in der Tat, wenn Sie diese beziehen (\ref{fig:multichunk1}, ...), alles funktioniert gut.