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/attachments/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}

相關內容