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}
등 의 내부 내용을 모르기 때문에 혼란을 방지하기 위해 xrow
and를 사용했습니다 .yrow
x=x,y=y
\pgfplotstable