如何直接隐藏 pgfplotstable 中的一列

如何直接隐藏 pgfplotstable 中的一列

我想使用 pgfplotstable 打印一个数据表,它很长(14 列)。

现在我想知道如何省略表中的一列。

一个已知的解决方案如何隐藏 pgfplotstable 中的一列但是这个解决方案并不是很漂亮,因为它实际上是间接地解决了问题,即通过指定要打印的列(与省略的列相反)。

因为我有 14 列,所以这会涉及一行非常长的行

列={HeadCol1,HeadCol2,HeadCol3,HeadCol4,HeadCol6,HeadCol7,HeadCol8,...}

而且列标题名称也仍有可能更改。所以我正在寻找一种方法来省略带有索引的列,例如 6。有办法吗?

答案1

这是一种解决方法。如果您想要隐藏两列或更多列,则此方法不适用。

\documentclass{article}
\usepackage{pgfplotstable}

\begin{document}
    \pgfplotstableread{
         A  B  C  D  E  F  G  H  I  J  K  L  M  N
         1  2  3  4  5  6  7  8  9 10 11 12 13 14
        15 16 17 18 19 20 21 22 23 24 25 26 27 28
    }\loadedtable

    \ttfamily
    \meaning\loadedtable

    \pgfplotstabletypeset\loadedtable

    \let\newcolumnlist\relax
    \def\dropcolumn{F}
    \pgfplotslistforeach\loadedtable\as\columnname{
        \ifx\columnname\dropcolumn\else
            \ifx\newcolumnlist\relax
                \xdef\newcolumnlist{\columnname}
            \else
                \xdef\newcolumnlist{\newcolumnlist,\columnname}
            \fi
        \fi
    }
    \edef\pgfplotsmarshal{\noexpand\pgfplotstabletypeset[columns={\newcolumnlist}]\noexpand\loadedtable}

    \meaning\newcolumnlist

    \pgfplotsmarshal


\end{document}

相关内容