跳到主要內容

pgfplots 基礎:用範例學 LaTeX 繪圖

載入 pgfplots,開啟一個內含 axis 的 tikzpicture,再用 \addplot 加入每個資料系列,資料可以是座標列表,也可以是公式。

最小的圖表

每個 pgfplots 圖表都有同樣的三層結構:一個 tikzpicture、其中的一個 axis,以及每個資料系列一個 \addplot。在導言區用 \usepackage{pgfplots} 載入套件。

四個以線連接的點

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}
    \addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
  \end{axis}
\end{tikzpicture}

座標軸會根據資料自行決定範圍和刻度。不加選項的 \addplot 會從預設的循環列表取得顏色和標記:第一個系列是藍色加圓形標記,第二個是紅色加方形標記,依此類推。

繪製公式

除了座標之外,也可以在大括號中給 \addplot 一個公式。domain 設定 x 的範圍,samples 設定取樣點數。如果沒有設定,pgfplots 會使用 -5 到 5 的範圍和 25 個取樣點。

設定 domain 和 samples 的函數

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}
    \addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
  \end{axis}
\end{tikzpicture}

\addplot 後面方括號中的選項會設定該系列的樣式。不加 + 的選項會讓系列以黑色(或你指定的顏色)繪製且不帶標記;\addplot+[...] 則保留循環列表的樣式,再加上你的選項。

標籤、標題、圖例和格線

這些選項設定在 axis 上,所以會影響整個圖表。

座標軸標籤、標題、圖例和格線

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{tikzpicture}
  \begin{axis}[
      title={Cooling of a cup of tea},
      xlabel={Time (min)},
      ylabel={Temperature ($^\circ$C)},
      grid=major,
      legend pos=north east,
    ]
    \addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
    \addlegendentry{Measured}
    \addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
    \addlegendentry{Model}
  \end{axis}
\end{tikzpicture}
由 Scissor LaTeX 排版: 座標軸標籤、標題、圖例和格線

標籤是文字,所以數學要像在段落中一樣放在 $ ... $ 之間。在每個 \addplot 後面加上 \addlegendentry,就能為該系列命名;你也可以在最後用 \legend{Measured, Model} 一次列出所有名稱。

常用的座標軸選項

選項作用在 Scissor LaTeX 中
xlabel、ylabel、title沿座標軸和圖表上方的文字可以使用
xmin、xmax、ymin、ymax固定可見範圍可以使用
width、height整個圖形的大小,例如 width=\linewidth可以使用
grid=major、grid=both在主要(和次要)刻度上畫格線可以使用
xtick={0,1,2}、xticklabels={a,b,c}選擇刻度和刻度標籤可以使用
legend pos=north westnorth west、north east、south west、south east、outer north east可以使用
axis lines=left以一對帶箭頭的 L 形座標軸取代外框可以使用(也支援 middle、center、none)
enlargelimits=false資料周圍不留額外空間可以使用
axis equal兩軸使用相同比例尚未支援:會被忽略,並在「問題」分頁中顯示訊息

pgfplots 手冊中的其他選項大多也能使用;折線圖頁面列出了樣式和標記。繪圖器不認識的選項會被忽略,並在「問題」分頁中列出名稱。

大小與位置

圖表預設大約是 240 × 207 點,也就是 pgfplots 的預設值。在座標軸上設定 width 和 height 就能改變大小。要為圖表加上圖說和編號,請把 tikzpicture 放進 figure 中,就像放圖片一樣。

放在 figure 中並附圖說的圖表

LaTeX導言區: \usepackage{pgfplots}在編輯器中開啟 (在新分頁中開啟)
\begin{figure}[h]
  \centering
  \begin{tikzpicture}
    \begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
      \addplot[domain=0:2, samples=30] {x^2};
    \end{axis}
  \end{tikzpicture}
  \caption{A parabola on $[0, 2]$.}
  \label{fig:parabola}
\end{figure}

Figure~\ref{fig:parabola} shows the parabola.
由 Scissor LaTeX 排版: 放在 figure 中並附圖說的圖表

在單一 tikzpicture 外面包上 \resizebox{0.5\linewidth}{!}{...} 也可以:圖形會縮放到該寬度。

與 TeX 安裝環境的差異

本頁的所有內容在安裝了 pgfplots 的 TeX 環境中也能編譯。完整手冊在 CTAN 上:ctan.org/pkg/pgfplots。

常見問題

我需要安裝 pgfplots 嗎?

不需要。照常寫 \usepackage{pgfplots} 即可。Scissor LaTeX 會辨識這個套件,並在瀏覽器中自己繪製圖表。

為什麼我的函數圖形有鋸齒?

pgfplots 預設連接 25 個點。在 \addplot 或座標軸上加上 samples=100(或更多)可以讓曲線更平滑,或加上 smooth,畫出通過這些點的曲線。

可以不用 tikzpicture 使用 pgfplots 嗎?

不行,在 LaTeX 中 axis 環境一定要放在 tikzpicture 裡面。Scissor LaTeX 遵循同樣的規則,所以你的程式碼在其他地方也能編譯。

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