pgfplotstable - 转置从磁盘读取的 CSV 表时出错

pgfplotstable - 转置从磁盘读取的 CSV 表时出错

我想从磁盘读取 CSV 文件,然后转置我读取的表格。当我在文档中创建表格时,命令没有问题pgfplotstabletranspose。但是,当我尝试从磁盘读取文件时,我收到错误

包 pgfplots 错误:抱歉,无法从表“attachments/paper_survey.csv”中检索列“Label”。请检查拼写(或引入名称别名)。

这是我的 MWE:

\documentclass[]{article}
\usepackage{pgfplots,pgfplotstable}
\begin{document}

\pgfplotstableread[col sep=semicolon]{% Read the data into a table macro
Label;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O
Yes;0.00;0.20;0.00;0.26;0.11;0.00;;0.49;0.14;0.31;0.03;0.60;0.06;0.06;0.00
No;1.00;0.80;1.00;0.74;0.89;1.00;;0.51;0.86;0.69;0.97;0.40;0.94;0.94;0.00
High;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.26
Medium;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.21
Low;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.53
}\datatable

% \pgfplotstableread[col sep = semicolon]{attachments/paper_survey.csv}\datatable

\pgfplotstabletranspose[string type,
    colnames from=Label,
    input colnames to=Label
]\datatabletransposed{\datatable}

\end{document}

我怎样才能解决这个问题?

答案1

我从附件子文件夹运行你的数据没有问题

您可能需要检查“G”值,因为有一个空的是/否插槽,并且“O”值为 0

仔细检查你的子文件夹/文件名是否正确,因为这个组合对我来说很有效

mainTeXfolder/附件/paper_survey.csv

Label;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O
Yes;0.00;0.20;0.00;0.26;0.11;0.00;0.0;0.49;0.14;0.31;0.03;0.60;0.06;0.06;0.00
No;1.00;0.80;1.00;0.74;0.89;1.00;0.0;0.51;0.86;0.69;0.97;0.40;0.94;0.94;0.00
High;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.26
Medium;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.21
Low;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.53

在此处输入图片描述

由于你没有选择情节方法,所以我使用了与上一个问题相同的方法

\documentclass[]{article}
\usepackage{pgfplots,pgfplotstable}
\pgfplotsset{compat=1.16}
\begin{document}
\pgfplotstableread[col sep = semicolon]{attachments/paper_survey.csv}\datatable

\begin{tikzpicture}
\pgfplotstabletranspose[string type, colnames from=Label, input colnames to=Label]\datatabletransposed{\datatable}
\begin{axis}[
    xbar stacked, % Stacked horizontal bars
    xmin=0, % Start x axis at 0
    ytick=data, % Use as many tick labels as y coordinates
    yticklabels from table={\datatabletransposed}{Label} % Get the labels from the Label column of the \datatable
]
\addplot [fill=green!70!blue] table [x=Yes, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=red!70!blue] table [x=No, y expr=\coordindex] {\datatabletransposed};
\end{axis}
\end{tikzpicture}

\end{document}

相关内容