如何避免使用计算列的PGFPlotstable中的无限符号?

aiag 05/13/2018. 1 answers, 16 views
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} 

我试过在表中skip ping行,而empty cells with这个用例的empty cells with需要不同的东西。 我瞥了一眼PGFPlotstable手册的第40-50页,但立即想到了这一点。

在这里输入图像描述

1 Answers


Torbjørn T. 05/13/2018.

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} 

Related questions

Hot questions

Language

Popular Tags