
你們中有人知道pgfplots
從外部文件獲取的圖形的標準格式(以及接受的文件類型,例如txt
,dat
)以及應該\addplot
從該確切文件中獲取數據的內容嗎?
謝謝你的幫忙。
答案1
我相信純文字文件是唯一受支援的文件,但文件副檔名是您喜歡的任何內容,
.txt
,.dat
,.csv
,.montypython
,等等。標準格式是以空格分隔的列,從某種意義上說,預設預期的列分隔符號是空格(“至少一個製表符或空格”,引用手冊)。但是,您可以使用鍵指定不同的分隔符
col sep
,它可以有以下不同的選項:col sep=space|tab|comma|colon|semicolon|braces|&|ampersand
所以如果你有一個類似的文本文件
x y 1 1 2 3
那你可以做
\addplot table {<filename including extension>};
你會得到 y 與 x 的關係圖。
pgfplots
如果沒有另外指示,將使用第一列作為 x 值,第二列作為 y 值。如果您有一個逗號分隔的文件,即
x,y 1,1 2,3
那你需要說
\addplot table[col sep=comma] {<filename including extension>};
如果您有兩列以上,則可以使用 、
x=<column name>, y=<column name>
或為 x 和 y 選擇所需的列x index=<number>, y index=<number>
。 (如果您願意,當然可以使用例如x
、 和index
for 的名稱y
。)例如,\addplot table[x=x, y=y] {<filename including extension>};
對於上面顯示的第一個範例文件,其中列標題實際上是
x
和y
。如果第一行僅包含數字,
pgfplots
則不會將其讀取為列名稱,而是假設檔案沒有標題行。- The
<column name>
是寫在第一行的文本,x
對於上面的範例,so 和 y`。 - 這
<number>
是列號,但請注意計數從零開始,因此要取得第一列,請x
執行以下操作x index=0
。
- The
範例程式碼(如果有興趣的話):
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usepackage{filecontents}
\begin{filecontents}{A.dat}
0 0
1 1
2 2
\end{filecontents}
\begin{filecontents}{B.csv}
0,1
1,2
2,3
\end{filecontents}
\begin{filecontents}{C.montypython}
foo bar baz
0 2 3
1 3 4
2 4 5
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table {A.dat};
\addplot table[col sep=comma] {B.csv};
\addplot table[x=foo, y=bar] {C.montypython};
\addplot table[x index=0, y index=2] {C.montypython};
\legend{A,B,C1,C2}
\end{axis}
\end{tikzpicture}
\end{document}