pgfplots를 사용하여 데이터를 행 단위로 플롯합니다.

pgfplots를 사용하여 데이터를 행 단위로 플롯합니다.

pgfplots로 플롯하고 싶은 일부 데이터가 파일에 저장되어 있습니다. 데이터는 행 단위로 저장됩니다. 즉, 파일은 다음과 같습니다.

a  1 2 3 4 5
b  6 7 8 9 0
c  2 4 6 8 0
...

그러나 Pgfplots에서는 데이터가 열 단위일 것으로 예상합니다. 이 문제를 해결하기 위해 를 사용하여 테이블을 전치합니다 \pgfplotstabletranspose. 그러나 행 제목에 문제가 있는 것 같습니다.

다음 최소 예제는 지금까지 달성한 ​​작업을 보여줍니다.

\documentclass{article}

\usepackage{pgfplots}
\usepackage{pgfplotstable}

\begin{document}

  \begin{tikzpicture}
    \begin{axis}
      \pgfplotstableread{
        x  1  2  3  4  5
        y  1  4  9 16 25
      }\datatable;
      \pgfplotstabletranspose\datatable{\datatable};

      \addplot table {\datatable};
    \end{axis}
  \end{tikzpicture}

\end{document}

원하는 출력은 다음 플롯입니다.

여기에 이미지 설명을 입력하세요

불행히도 다음과 같은 오류가 발생합니다.

패키지 PGF 수학 오류: 입력 'x'를 부동 소수점 숫자로 구문 분석할 수 없습니다. 죄송합니다.

(흥미롭게 -interaction=nonstopmode도 플롯을 사용하면 원하는 대로 생성되지만 오류가 발생하여 짜증스럽습니다...)

pgfplots첫 번째 열에 오류 메시지를 제거하기 위한 행 제목이 포함되어 있음을 어떻게든 알 수 있습니까 ?

답변1

\pgfplotstabletranspose열 이름을 유지하려면 훈련이 필요합니다 .

값을 갖는 더미 행을 데이터에 추가합니다 colnames 0 1 2 3 4 (반면 colnames기본적으로 다른 것으로 대체될 수 있음). 를 불러

\addplot table[x=xrow,y=yrow] {\otherdatatable}; 

(전치된 테이블에 다른 매크로를 사용했습니다. 동일한 매크로를 사용하는 것이 건강하지 않을지는 잘 모르겠습니다.)

\documentclass{article}

\usepackage{pgfplots}
\usepackage{pgfplotstable}

\pgfplotsset{compat=1.12}
\begin{document}

  \begin{tikzpicture}
    \begin{axis}
      \pgfplotstableread{%
          colnames    0  1  2  3  4
          xrow        1  2  3  4  5
          yrow        1  4  9 16 25
      }\datatable;
      \pgfplotstabletranspose[colnames from=colnames]\otherdatatable{\datatable};

 \addplot table[x=xrow,y=yrow] {\otherdatatable};
    \end{axis}
  \end{tikzpicture}

\end{document}

등 의 내부 내용을 모르기 때문에 혼란을 방지하기 위해 xrowand를 사용했습니다 .yrowx=x,y=y\pgfplotstable

여기에 이미지 설명을 입력하세요

관련 정보