pgfplots 基礎:用範例學 LaTeX 繪圖
載入 pgfplots,開啟一個內含 axis 的 tikzpicture,再用 \addplot 加入每個資料系列,資料可以是座標列表,也可以是公式。
最小的圖表
每個 pgfplots 圖表都有同樣的三層結構:一個 tikzpicture、其中的一個 axis,以及每個資料系列一個 \addplot。在導言區用 \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 的函數
\begin{tikzpicture}
\begin{axis}
\addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
\end{axis}
\end{tikzpicture}\addplot 後面方括號中的選項會設定該系列的樣式。不加 + 的選項會讓系列以黑色(或你指定的顏色)繪製且不帶標記;\addplot+[...] 則保留循環列表的樣式,再加上你的選項。
標籤、標題、圖例和格線
這些選項設定在 axis 上,所以會影響整個圖表。
座標軸標籤、標題、圖例和格線
\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}標籤是文字,所以數學要像在段落中一樣放在 $ ... $ 之間。在每個 \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 west | north 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 中並附圖說的圖表
\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.在單一 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