
Ich versuche, mit pgfplotstable Daten in einige Tabellen zu laden. Mein Problem ist, dass die Daten in den Dateien ein etwas anderes Format haben als das, wie ich sie in der Tabelle darstellen möchte, und dass nach der Transformation einige Zeilendaten „fehlen“. Nachdem ich das Internet durchforstet habe, konnte ich nichts finden, das funktioniert, also bin ich hier!
Ich bin nicht gut darin, es zu beschreiben, also zeige ich Ihnen einfach ein Beispiel. Ich möchte Folgendes:
Aber bisher kann ich nur dies tun:
Der Code, den ich zum Erstellen dieser kurzen Demo verwendet habe, lautet wie folgt (das gesamte „pgfplotstableread“ würde durch das Laden derselben Daten aus Dateien mithilfe von „pgfplotstabletranspose“ ersetzt):
\documentclass{article}
\usepackage{booktabs}
\usepackage{pgfplotstable}
\begin{document}
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\pgfplotstableset{%
every head row/.style={
before row={%
\toprule
\ensuremath{r_{lesion}} & \multicolumn{4}{c}{\ensuremath{E_{nom}}} \\
},
after row=\midrule
},
every last row/.style={after row=\bottomrule}
}
\pgfplotstabletypeset[
numeric type,
columns/(mm)/.style={
column type=r
}
]{
(mm) 0.32 0.56 1.80 3.20
5 0.98 1.03 1.26 1.47
10 0.84 0.95 1.44 1.74
15 0.05 0.65 1.86 2.57
20 0.03 0.52 2.13 3.19
}
\vspace{0.5in}
\pgfplotstableread{
sr esr
0.32 0.98
0.56 1.03
1.8 1.26
3.2 1.47
}\rowA
\pgfplotstableread{
sr esr
0.32 0.84
0.56 0.95
1.8 1.44
3.2 1.74
}\rowB
\pgfplotstableread{
sr esr
0.32 0.05
0.56 0.65
1.8 1.86
3.2 2.57
}\rowC
\pgfplotstableread{
sr esr
0.32 0.03
0.56 0.52
1.8 2.13
3.2 3.19
}\rowD
\pgfplotstabletranspose[columns=esr, numeric type]{\transA}{\rowA}
\pgfplotstabletranspose[columns=esr, numeric type]{\transB}{\rowB}
\pgfplotstabletranspose[columns=esr, numeric type]{\transC}{\rowC}
\pgfplotstabletranspose[columns=esr, numeric type]{\transD}{\rowD}
\pgfplotstablevertcat{\renderedTable}{\transA}
\pgfplotstablevertcat{\renderedTable}{\transB}
\pgfplotstablevertcat{\renderedTable}{\transC}
\pgfplotstablevertcat{\renderedTable}{\transD}
\pgfplotstabletypeset[
columns/colnames/.style={
numeric type,
column name={(mm)},
column type=r
},
columns/0/.style={
column name={0.32}
},
columns/1/.style={
column name={0.56}
},
columns/2/.style={
column name={1.80}
},
columns/3/.style={
column name={3.20}
}
]\renderedTable
\end{document}
Wenn ich die „Spaltennamen“ wieder in einen Zeichenfolgentyp ändere, wird „esr“ statt „NaN“ angezeigt. Ich möchte diese Werte jedoch trotzdem manuell in das Dokument eingeben können, sodass ich beispielsweise Folgendes tun kann:
\defineColumnOneRows{5,10,20,25}
Und tragen Sie diese Werte in die Zeilen der ersten Spalte ein.
Wir sind für jede Hilfe, die Sie anbieten können, unglaublich dankbar! Danke, dass Sie vorbeigeschaut haben!