Ich möchte eine CSV-Datei von der Festplatte lesen und dann die gelesene Tabelle transponieren. Wenn ich die Tabelle in meinem Dokument erstelle, gibt es kein Problem mit dem pgfplotstabletranspose
Befehl. Wenn ich jedoch versuche, die Datei von der Festplatte zu lesen, erhalte ich einen Fehler als
Paket-pgfplots-Fehler: Leider konnte die Spalte „Label“ nicht aus der Tabelle „attachments/paper_survey.csv“ abgerufen werden. Bitte überprüfen Sie die Rechtschreibung (oder geben Sie Namensaliase ein).
Das ist mein 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}
Wie kann ich das beheben?
Antwort1
Ich habe kein Problem damit, Ihre Daten aus dem Unterordner Anhänge auszuführen
Möglicherweise möchten Sie die "G"-Werte überprüfen, da ein leerer Ja/Nein-Slot vorhanden war und die "O"-Werte 0 sind
Überprüfen Sie noch einmal, ob Ihr Unterordner/Dateiname korrekt ist, da diese Kombination bei mir funktioniert hat
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
Da Sie keine Plotmethode ausgewählt haben, habe ich dieselbe Methode wie bei einer früheren Frage verwendet.
\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}