PGFPLOTS:图形和表格格式

PGFPLOTS:图形和表格格式

刚花了一个小时浏览手册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我通过消除值和刻度标记来节省空间。

问题:

  1. 如何使图形和表格并排显示?

  2. 如果我需要同时旋转两个浮点数(图形和表格)并将它们逆时针旋转 90 度,以便它们以横向模式出现,该如何进行?

  3. 我尝试使用该const plot mark right选项,\addplot但是没有用。为什么?

  4. 为什么该mark=x选项在我的代码中不起作用?

  5. 为什么该color=black选项在我的代码中不起作用?

  6. 如果我想将所有内容输出为 eps 文件。该怎么办?我尝试使用

    \usepgfplotslibrary{external}
    \tikzexternalize% activate externalization!
    

但这不适用于传统的 LaTeX > dvips > ps2pdf 路线。那么如何获取 eps?

我在 Win XP 上使用 TeXLive 2011(上周已全部更新)。

多谢...

答案1

  1. 将图表和表格都放入环境中。如果加载包并使用命令figure,则可以获得图形和表格标题。caption\captionof{<type>}{<caption>}
  2. figure将您环境中的所有内容封装在 中\rotatebox{90}{<...>}。如果您使用 TikZ,则无需加载其他软件包。
  3. const plot mark right需要提供给\addplot [<options>],而不是\addplot table [<options>]
  4. 也一样mark=x。正确的语法是\addplot [mark=x] table...
  5. color=blackaxis选项中可以正常工作,但可能不如您所期望的那样。尝试color=red在轴选项中设置:轴线将为红色。我假设您希望所有图都为黑色(提示:不要说“不起作用”,要具体!)。为此,您需要添加,这会在设置完所有其他内容后将every axis plot post/.style={draw=black}选项附加到选项中,或者在中指定。\addplotcolor=black\addplot [<options>]
  6. 不知道。

奖励:对于打印年份,您需要设置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} 

相关内容