如何避免在具有计算列的 PGFPlotstable 中出现无穷符号?

如何避免在具有计算列的 PGFPlotstable 中出现无穷符号?

在下面的 MWE 中,我正在计算一些年度数据的百分比变化。当用下一行的值除以上一行的值时,第一行由于除以零而得到无穷大,并将无穷大符号输出到 Col1 和 Col2 的单元格中。我该如何清空这些单元格或至少用破折号替换无穷大?

\documentclass{scrartcl}
\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,angles,quotes,intersections,decorations.pathmorphing,positioning,matrix,fit}
\usepackage{filecontents,pgfplotstable,pgfplots,booktabs}
\pgfplotsset{compat=newest}

\begin{document}

\begin{filecontents*}{healthcare.txt}
x   Col1    Col2
2010    597.5 392.3
2011    615.1 400.9
2012    628.7 410.2
2013    634.3 417.2
2014    644.4 422.6
\end{filecontents*}

\pgfplotstableread{healthcare.txt}\datatable
\pgfplotstablecreatecol[expr={(\thisrow{Col1}-\prevrow{Col1})*100/\prevrow{Col1}}]{Col3}{\datatable}
\pgfplotstablecreatecol[expr={(\thisrow{Col2}-\prevrow{Col2})*100/\prevrow{Col2}}]{Col4}{\datatable}

\pgfplotstabletypeset[
    every head row/.style={before row={\toprule},after row=\midrule},
    columns/x/.style={column name=Year,1000 sep={}},
    columns/Col1/.style={column name=Col1,1000 sep={}},
    columns/Col2/.style={column name=Col2,1000 sep={}},
    columns/Col3/.style={column name=Col3,1000 sep={}},
    columns/Col4/.style={column name=Col4,1000 sep={}},
]{\datatable}

\end{document}

我尝试skipping 表中的行,empty cells with但此用例需要一些不同的东西。我浏览了 PGFPlotstable 手册的第 40-50 页,但立即想到了这一点。

在此处输入图片描述

答案1

clear infinite密钥将使这些单元格清空。

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{filecontents,pgfplotstable,booktabs}
\pgfplotsset{compat=newest}

\begin{document}

\begin{filecontents*}{healthcare.txt}
x   Col1    Col2
2010    597.5 392.3
2011    615.1 400.9
2012    628.7 410.2
2013    634.3 417.2
2014    644.4 422.6
\end{filecontents*}

\pgfplotstableread{healthcare.txt}\datatable
\pgfplotstablecreatecol[expr={(\thisrow{Col1}-\prevrow{Col1})*100/\prevrow{Col1}}]{Col3}{\datatable}
\pgfplotstablecreatecol[expr={(\thisrow{Col2}-\prevrow{Col2})*100/\prevrow{Col2}}]{Col4}{\datatable}

\pgfplotstabletypeset[
    clear infinite,
    every head row/.style={before row={\toprule},after row=\midrule},
    columns/x/.style={column name=Year,1000 sep={}},
    columns/Col1/.style={column name=Col1,1000 sep={}},
    columns/Col2/.style={column name=Col2,1000 sep={}},
    columns/Col3/.style={column name=Col3,1000 sep={}},
    columns/Col4/.style={column name=Col4,1000 sep={}},
]{\datatable}

\end{document}

相关内容