pgfplots 外部文件格式

pgfplots 外部文件格式

你們中有人知道pgfplots從外部文件獲取的圖形的標準格式(以及接受的文件類型,例如txtdat)以及應該\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、 和indexfor 的名稱y。)例如,

    \addplot table[x=x, y=y] {<filename including extension>};
    

    對於上面顯示的第一個範例文件,其中列標題實際上是xy

    如果第一行僅包含數字,pgfplots則不會將其讀取為列名稱,而是假設檔案沒有標題行。

    • The<column name>是寫在第一行的文本,x對於上面的範例,so 和 y`。
    • <number>是列號,但請注意計數從零開始,因此要取得第一列,請x執行以下操作x index=0

範例程式碼(如果有興趣的話):

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

上述程式碼的輸出

相關內容