我想從磁碟讀取 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}