跳到主要內容

Scissor LaTeX 中的 pgfplots

pgfplots 套件在 Scissor LaTeX 中可用於大多數 2D 圖表,由它自己的繪圖器繪製:座標軸、折線圖、散布圖和長條圖、公式、表格和 CSV 檔案、對數軸、誤差線、圖例、groupplots、fill between,以及從上方觀看的熱圖;3D 視角、axis equal 和 pgfplotstable 的表格目前還不支援。

套件的用途

pgfplots 在 TikZ 圖中根據資料或公式繪製圖表。你開啟 \begin{tikzpicture}\begin{axis}[...],每個數列加一個 \addplot,pgfplots 就會自動選擇刻度、圖例和顏色。它的選項涵蓋對數軸、長條圖、誤差線、色彩映射等等。

Scissor LaTeX 不會執行 pgfplots。排版器讀取同樣的程式碼,自己以向量圖形繪製圖表,標籤則使用文件的字型。結果會盡量貼近 pgfplots 的預設值,原始碼在 TeX 安裝環境中也不需修改就能編譯。

在這裡可用的功能

功能在 Scissor LaTeX 中更多資訊
有標籤、標題、圖例、格線、刻度和範圍的 axis可用pgfplots 基礎
線條、標記、顏色、cycle list、smooth、const plot可用折線圖
only marks、散布圖可用散布圖
ybar、xbar、堆疊長條、nodes near coords、symbolic x coords可用長條圖
error bars/.cd, y explicit, +- (x, y)可用誤差線
semilogyaxis, loglogaxis, xmode=log可用對數軸
搭配 group style 的 groupplot(groupplots 函式庫)可用分組圖
從行內資料列或專案中的 .csv/.dat 檔案讀取的 \addplot table可用從 CSV 讀取資料
搭配 view={0}{90} 的 \addplot3:surf、matrix plot、contour filled、colorbar可用等高線圖和熱圖
fill between(fillbetween 函式庫)、name path可用
\pgfplotsset{...}、樣式、compat=可用不論設定為何,都以 compat=1.18 的方式運作。
使用其他 view 的 \addplot3(真正的 3D)不支援會畫出空的座標軸,並顯示訊息。
axis equal不支援會被忽略並顯示訊息;各座標軸保持自己的比例。
\pgfplotstabletypeset(pgfplotstable)不支援會被略過並顯示訊息,檔名會被印出。
無法辨識的選項忽略會被忽略,並顯示列出該選項的訊息;其餘部分照常繪製。

範例

有數值標籤的長條圖:

使用 nodes near coords 的長條圖

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}[ybar, bar width=12pt, ymin=0, ymax=52,
      symbolic x coords={Mon,Tue,Wed,Thu}, xtick=data,
      nodes near coords, enlarge x limits=0.2,
      ylabel={Visitors}, width=7cm, height=5cm]
    \addplot coordinates {(Mon,31) (Tue,44) (Wed,38) (Thu,27)};
  \end{axis}
\end{tikzpicture}

從寫在文件中的表格讀取兩個數列,並加上圖例:

行內表格的欄

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}[xlabel={Week}, ylabel={Hours of practice},
      legend pos=north west, width=7cm, height=5cm]
    \addplot table [x=week, y=erika] {
      week erika john
      1    4     2
      2    6     3
      3    5     5
      4    8     6
    };
    \addlegendentry{Erika}
    \addplot table [x=week, y=john] {
      week erika john
      1    4     2
      2    6     3
      3    5     5
      4    8     6
    };
    \addlegendentry{John}
  \end{axis}
\end{tikzpicture}

從斜角觀看的曲面目前還不會繪製。座標軸會是空的,「問題」分頁會說明原因:

3D 視角不會繪製

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}[view={60}{30}, width=6cm]
    \addplot3[surf, domain=-2:2] {x^2 - y^2};
  \end{axis}
\end{tikzpicture}

「問題」分頁: 3D plots are drawn only when seen from above (view={0}{90}) for now

相容性

  • 從 TeX 安裝環境搬到這裡:大多數 2D 圖表看起來和在那裡一樣,誤差在一兩點以內。真正的 3D 圖、axis equal 和支援範圍外的選項,會在「問題」分頁中列出。
  • 從這裡搬到 TeX 安裝環境:圖表在那裡搭配 pgfplots 不需修改就能編譯。contour lua 和 contour gnuplot 在那裡需要 LuaLaTeX 或 gnuplot;contour filled 則都不需要。

完整手冊在 CTAN 上:ctan.org/pkg/pgfplots。沒有座標軸的繪圖請見 TikZ。

常見問題

要在這裡使用 pgfplots,需要先安裝它嗎?

不需要。照常寫 \usepackage{pgfplots};Scissor LaTeX 會辨識程式碼,並在瀏覽器中繪製圖表。

為什麼我的 3D 圖是空的?

目前只會繪製從上方觀看(view={0}{90})的圖。其他視角會產生空的座標軸,並在「問題」分頁中顯示訊息。

可以從 CSV 檔案繪製資料嗎?

可以。把檔案加入專案,然後寫 \addplot table[x=a, y=b, col sep=comma] {file.csv};。

本頁的每個範例都在建置網站時由 Scissor LaTeX 排版。 最後更新:2026-11-07