刚花了一个小时浏览手册pgfplots
,我就想把一个图和一个表并排起来(图和表都使用相同的数据)。所以我还有很多东西要学!
这是apples.dat
文件:
%Apples that went bad
year value
2008 12053 %31 Dec 2007
2009 15792 %31 Dec 2008
2010 22907 %31 Dec 2009
2011 30997 %31 Dec 2010
以下是我的情节命令:
\documentclass[12pt]{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotsset{width=7cm,height=5cm,compat=newest}
\begin{figure}[h]
\begin{tikzpicture}
\begin{axis}[
enlargelimits=false,
xmin=2008,
xmax=2012,
x tick label style={rotate=45,anchor=east},
mark=x,line width=1pt,
axis y line = none,
nodes near coords,
color=black,
grid=major
]
xlabel=year,
ylabel=value]
\addplot+ file[skip first = true,x=year,y=value,const plot mark right]{apples.dat};
\end{axis}
\end{tikzpicture}
\end{figure}
\pgfplotstabletypeset[columns={year,value}]{apples.dat}
\end{document}
y
我通过消除值和刻度标记来节省空间。
问题:
如何使图形和表格并排显示?
如果我需要同时旋转两个浮点数(图形和表格)并将它们逆时针旋转 90 度,以便它们以横向模式出现,该如何进行?
我尝试使用该
const plot mark right
选项,\addplot
但是没有用。为什么?为什么该
mark=x
选项在我的代码中不起作用?为什么该
color=black
选项在我的代码中不起作用?如果我想将所有内容输出为 eps 文件。该怎么办?我尝试使用
\usepgfplotslibrary{external} \tikzexternalize% activate externalization!
但这不适用于传统的 LaTeX > dvips > ps2pdf 路线。那么如何获取 eps?
我在 Win XP 上使用 TeXLive 2011(上周已全部更新)。
多谢...
答案1
- 将图表和表格都放入环境中。如果加载包并使用命令
figure
,则可以获得图形和表格标题。caption
\captionof{<type>}{<caption>}
figure
将您环境中的所有内容封装在 中\rotatebox{90}{<...>}
。如果您使用 TikZ,则无需加载其他软件包。const plot mark right
需要提供给\addplot [<options>]
,而不是\addplot table [<options>]
。- 也一样
mark=x
。正确的语法是\addplot [mark=x] table...
。 color=black
在axis
选项中可以正常工作,但可能不如您所期望的那样。尝试color=red
在轴选项中设置:轴线将为红色。我假设您希望所有图都为黑色(提示:不要说“不起作用”,要具体!)。为此,您需要添加,这会在设置完所有其他内容后将every axis plot post/.style={draw=black}
选项附加到选项中,或者在中指定。\addplot
color=black
\addplot [<options>]
- 不知道。
奖励:对于打印年份,您需要设置x tick label style={/pgf/number format/.cd, use comma, 1000 sep={}}
。同样适用于\pgfplotstabletypeset
:在这里,您可以添加
columns/year/.style={
/pgf/number format/.cd,
use comma,
1000 sep={}
}
\documentclass[12pt]{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{caption,subcaption}
\usepackage{filecontents}
\begin{filecontents}{apples.dat}
%Apples that went bad
year value
2008 12053 %31 Dec 2007
2009 15792 %31 Dec 2008
2010 22907 %31 Dec 2009
2011 30997 %31 Dec 2010
\end{filecontents}
\begin{document}
\pgfplotsset{width=7cm,height=5cm,compat=newest}
\begin{figure}[h]
\begin{minipage}{0.45\textwidth}\centering
\begin{tikzpicture}
\begin{axis}[
enlargelimits=false,
xmin=2008,
xmax=2012,
x tick label style={
yshift=-0.5ex,
rotate=45,
anchor=east,
/pgf/number format/.cd,
use comma,
1000 sep={}
},
line width=1pt,
axis y line = none,
nodes near coords,
every axis plot post/.style={color=black},
grid=major,
xlabel=year,
ylabel=value]
\addplot [mark=x,const plot mark right] file[skip first = true,x=year,y=value]{apples.dat};
\end{axis}
\end{tikzpicture}
\captionof{figure}{A pretty plot}
\end{minipage}
\begin{minipage}{0.45\textwidth}\centering
\captionof{table}{The data table}
\pgfplotstabletypeset[
columns={year,value},
columns/year/.style={
/pgf/number format/.cd,
use comma,
1000 sep={}
}]{apples.dat}
\end{minipage}
\end{figure}
\end{document}