我正在尝试使用knitr生成直方图,并使用tikzDevice进行投影仪演示。
我已经使用R-studio中的控制台生成了直方图,因此看起来数据格式正确但是使用dev=tikz
选项(或'dev = pdf')编译文档(使用R-studio)就此而言)只是生成一个带标题的空白幻灯片,没有错误(据我所知)。
数据如下所示:
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}
答案 0 :(得分:1)
好吧,我似乎已经解决了我自己的问题。我不确定问题的原因,但我会解释我是如何找出问题的。
像往常一样,在这些情况下,我必须首先将代码配对到基本要素,在这种情况下,只留下没有语言包的beamer模板。
然后我添加了单个代码块,只有一个简单的标签名称和设备<<nrone,dev='tikz'>>=
,确保我在'tikz'
周围加上单引号。
然后我逐渐将元素添加到代码块中,从导入数据开始。
当我导入数据时,我在histdata$Ar
列中删除了2010-2012的行以简化绘图,然后在我确定编译时逐渐添加缺少的数据。
在添加数据时,我还将额外的设置添加到ggplot行以正确分组数据,使颜色方案变为黑白,并在x轴上倾斜标签。
情节有点大,所以我在out.width
设置中添加了它以使其适合并放置cache=FALSE
以确保每次编译时它都刷新了图片,以及{{1删除无关的文本。
然后我将代码块分成两个,在一个代码块中导入数据,然后像以前一样将数据绘制到第二个。
经历了这个过程,我意识到我不需要echo=FALSE,message=FALSE
,这是我之前的过程。
更正后的代码如下:
require(tikzDevice)
我希望这可以帮助处于类似情况的人: - )