pgfplotstable은 행 데이터를 수동으로 선언합니다.

pgfplotstable은 행 데이터를 수동으로 선언합니다.

pgfplotstable을 사용하여 일부 테이블에 데이터를 로드하려고 합니다. 내 문제는 파일의 데이터가 테이블에 표시하려는 방식과 약간 다른 형식이고 이를 변환한 후 일부 행 데이터가 "누락"된다는 것입니다. 인터넷을 검색한 후에도 작동하는 것을 찾을 수 없어서 여기에 있습니다!

제가 설명을 잘 못해서 예시만 보여드리겠습니다. 나는 이것을 원한다:

r_lesion 열의 올바른 행 값을 표시하는 원하는 출력

하지만 지금까지 내가 할 수 있는 일은 이것뿐이다:

r_lesion 열의 NaN 행 값을 보여주는 현재 출력

이 짧은 데모를 만드는 데 사용한 코드는 다음과 같습니다(모든 "pgfplotstableread"는 "pgfplotstabletranspose"를 사용하여 파일에서 동일한 데이터를 로드하여 대체됩니다).

\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}

"colnames"를 다시 문자열 유형으로 변경하면 "NaN" 대신 "esr"이 표시되지만 다음과 같은 작업을 수행할 수 있도록 문서에 해당 값을 수동으로 입력할 수 있기를 원합니다.

\defineColumnOneRows{5,10,20,25}

그리고 해당 값을 첫 번째 열의 행에 가져옵니다.

당신이 제공할 수 있는 어떤 도움이라도 대단히 감사하겠습니다! 살펴봐주셔서 감사합니다!

관련 정보