2 Stimmen

Ändern Sie die Größe von ggplot2-Plots in Sweave, ohne dass der Text/die Zahlen unverhältnismäßig groß werden

Ich fand dies pregunta über die Änderung der Größe eines ggplot2-Plots in Sweave. Ich habe die Sweaveopts{width=3, height=3} und es verkleinert zwar den Plot, aber nicht den Text. Am Ende überschneiden sich also alle Zahlen auf den Achsen.

Gibt es eine Möglichkeit, den gesamten ggplot2-Plot in Sweave zu skalieren, so dass ich nicht jede Komponente im ursprünglichen ggplot2-Aufruf manuell skalieren muss? Es scheint etwas zu sein, das ich tun können sollte, aber ich kann es weder im ggplot2-Buch noch auf der Website finden. Vielen Dank!

FWIW, hier ist mein Aufruf in Sweave:

\SweaveOpts{width=3, height=3}
\begin{figure}
\begin{center}
<<fig=TRUE>>=
print(plot.m)
@
\end{center}
\caption{stuff}
\label{fig:stuff}
\end{figure}

Und der Aufruf, der den ggplot2-Plot erzeugt:

plot.m <- ggplot(temp, aes(date, spread)) + geom_bar(stat="identity") + scale_x_date(major="years", minor="months")

6voto

Dirk Eddelbuettel Punkte 345316

Es ist im Grunde eine Sweave-FAQ. Googeln Sie und Sie werden eine Unmenge an Treffern finden.

Ein Ansatz besteht darin, die Datei einfach in das PDF-Format zu schreiben (ohne Skalierung) und dann die Skalierung auf der \includegraphics Befehl. Ich habe mir gerade eine Vignette angesehen, die ich vor ein paar Tagen fertiggestellt habe, und ich wollte etwas, das ungefähr so breit ist wie die Seite, und das habe ich auch getan:

\begin{figure}[t!]
  \centering
<<someLabel,fig=TRUE,width=8>>=
## some R code omitted
print(dotplot(foo ~ bar | someFactor, group=someThing, 
              data=someDF, layout=c(1,3),
              xlab="some X label", ylab="",
              key=simpleKey(text=c("A","B"), space="top")))
@
  \caption{Some caption.}
  \label{fig:someLabel}
\end{figure}

einige grundsätzlich nur eine Breitenabmessung auf der Ebene der Sweave-Optionen. Ich habe festgestellt, dass kleine Werte nicht gut funktionieren - versuchen Sie es also mit etwas Größerem wie z.B. 6 oder 7 Zoll.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X