0

ビーマー プレゼンテーション用の Knitr と tikzDevice を使用してヒストグラムを生成しようとしています。

R-studio のコンソールを使用してヒストグラムを既に生成しているため、データは正しくフォーマットされているように見えますが、(R-studio を使用して)dev=tikzオプション (または「dev=pdf」) を使用してドキュメントをコンパイルすると、空白が生成されます。ヘッダー付きのスライドでエラーはありません(私が知る限り)。

データは次のようになります。

   Dag Okt   Ar Bes
1    M   K 2009 522
2    M  Vm 2009  89
3    T   A 2009   0
4    T  Sg 2009 252
5    T  SS 2009   0
6    O  Vo 2009   0
7    O  St 2009 238
8    O   B 2009 107
9   To  Vt 2009 249
10  To  Tu 2009 121
11   F  Sk 2009 415
12   F  Tt 2009   0
13   M   K 2010 558
14   M  Vm 2010 283
15   T   A 2010  36
16   T  Sg 2010 211
17   T  SS 2010   0
18   O  Vo 2010   0
19   O  St 2010 381
20   O   B 2010 164
21  To  Vt 2010 260
22  To  Tu 2010  99
23   F  Sk 2010 397
24   F  Tt 2010  19
25   M   K 2011 571
26   M  Vm 2011 302
27   T   A 2011 273
28   T  Sg 2011 183
29   T  SS 2011  84
30   O  Vo 2011   0
31   O  St 2011 368
32   O   B 2011  53
33  To  Vt 2011 298
34  To  Tu 2011  92
35   F  Sk 2011 346
36   F  Tt 2011  30
37   M   K 2012 479
38   M  Vm 2012 382
39   T   A 2012 146
40   T  Sg 2012 181
41   T  SS 2012  57
42   O  Vo 2012  83
43   O  St 2012 379
44   O   B 2012  54
45  To  Vt 2012 507
46  To  Tu 2012 173
47   F  Sk 2012 238
48   F  Tt 2012  55

コードは次のとおりです。

\documentclass{beamer}
\usepackage[norsk]{babel}
\usepackage[utf8]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{pgf}
\usepackage{tikz}

\mode<presentation>
{
  \usetheme{Frankfurt}
  % or ...

  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}



\title[]{Title}

\subtitle{} % (optional)


\title{Title}
\author{JB}
\date{\today}
\if pdf
\pdfinfo {
  /Author (JB)
  /Title (Title)
  /Subject ()
  /Keywords ()
  /CreationDate (D:20130531)
}
\fi
\begin{document}

\maketitle

\section{Intro}
\begin{frame}
\frametitle{Test}
\begin{itemize}
\item Test
\end{itemize}
\end{frame}


\section{Data}

% Hidden R code chunk --- reading in the data
<<setup, echo=FALSE,message=FALSE>>=
require(ggplot2)
require(tikzDevice)
histdata<-read.csv("data.csv")
histdata$Ar<-factor(histdata$Ar)
@

\begin{frame}
<<histogram,echo=FALSE,dev=tikz,cache=FALSE>>=
ggplot(histdata,aes(x=Dag,y=Bes,fill=Ar))+geom_bar(position="dodge",stat="identity")+ scale_fill_grey(start=0.8, end=0)
@
\end{frame}
\end{document}
4

1 に答える 1

1

さて、私は自分の質問を解決したようです。問題の原因についてはよくわかりませんが、機能していないことがわかった方法を説明します。

このような状況ではいつものように、コードを必要最小限のものにペアリングすることから始めなければなりませんでした。この場合、言語パッケージなしでビーマー テンプレートのみを残しました。

次に、単純なラベル名とデバイスのみを含む単一のコード チャンクを追加<<nrone,dev='tikz'>>=し、'tikz'.

次に、データのインポートから始めて、徐々に要素をコード チャンクに追加しました。

データをインポートしたとき、プロットを単純化するために列に 2010-2012 を含む行を削除し、histdata$Arコンパイルされたことを確認したら、欠落しているデータを徐々に追加しました。

データを追加する際に、ggplot 行に追加の設定を追加して、データを正しくグループ化し、配色を白黒にし、x 軸のラベルを傾けました。

プロットが少し大きかったので、out.width設定を追加してフィットcache=FALSEさせ、コンパイルするたびに画像が更新されるようecho=FALSE,message=FALSEにし、不要なテキストを削除しました。

次に、コード チャンクを 2 つに分割し、データ インポートを 1 つのコード チャンクに、データのプロットを 2 つ目のコード チャンクに分割しました。

このプロセスを経require(tikzDevice)て、以前持っていた が必要ないことに気付きました。

修正されたコードは次のとおりです。

\documentclass{beamer}
\usepackage[norsk]{babel}
\usepackage[utf8]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}

\mode<presentation>
{
  \usetheme{Frankfurt}
  % or ...

  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}



\title[]{Title}

\subtitle{} % (optional)


\title{Title}
\author{JB}
\date{\today}
\if pdf
\pdfinfo {
  /Author (JB)
  /Title (Title)
  /Subject ()
  /Keywords ()
  /CreationDate (D:20130531)
}
\fi
\begin{document}

\maketitle


% Hidden R code chunk --- reading in the data
<<setup, echo=FALSE,message=FALSE>>=
require(ggplot2)
histdata<-read.csv("data.csv")
histdata$Ar<-factor(histdata$Ar)
@

\begin{frame}
<<histogram,echo=FALSE,message=FALSE,dev='tikz',cache=FALSE,out.width='.8\\textwidth'>>=
ggplot(histdata,aes(x=Okt,y=Bes,fill=Ar)) + geom_bar(position="dodge",stat='identity') +  scale_fill_grey(start=0.8, end=0) + theme(axis.text.x = element_text(angle=30, hjust=1, vjust=1))
@
\end{frame}
\end{document}

これが同じような状況の誰かに役立つことを願っています:-)

于 2013-06-17T09:44:32.520 に答える