\usepackage{pgfplots}

pgfplots الرسوم البيانية والمخططات في LaTeX

أنشئ مخططات بجودة النشر مباشرةً في مستندات LaTeX باستخدام pgfplots. من مخططات الدوال البسيطة إلى الأشكال المعقدة متعددة اللوحات مع بيانات التبعثر.

دليل TikZ

البدء

أضف \usepackage{pgfplots} إلى المقدمة (preamble) واضبط مستوى التوافق باستخدام \pgfplotsset{compat=1.18} . ثم غلّف مخططك ببيئتي tikzpicture وaxis. شرح الخيارات الرئيسية:

  • title—نص معروض فوق إطار المخطط
  • xlabel / ylabel—تسميات المحاور؛ وضع الرياضيات مدعوم
  • grid—major أو minor أو both، ترسم خطوط الشبكة عند العلامات
  • domain=a:b—نطاق x الذي تُقيَّم عليه الدالة
  • samples—عدد نقاط التقييم، كلما زاد كان المنحنى أنعم
  • \addplot[opts] {expr};—يرسم مخططًا؛ تشمل الخيارات color وthick وdashed
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    title={$f(x) = x^{2}$},
    xlabel={$x$},
    ylabel={$f(x)$},
    grid=major,
    width=8cm,
    height=6cm,
  ]
    \addplot[blue, thick, domain=-3:3, samples=100] {x^2};
  \end{axis}
\end{tikzpicture}

\end{document}

خيارات بيئة المحور

تُمرَّر جميع الخيارات داخل الأقواس المربعة للأمر \begin{axis}[…]. ويمكن الجمع بينها بحرية.

الخيارالنوعالوصف
titlestringالعنوان المعروض فوق إطار المحور.
xlabel / ylabelstringتسميات المحورين x وy؛ تدعم وضع الرياضيات.
xmin / xmaxnumberحدّان أدنى وأعلى صريحان للمحور x.
gridmajor | minor | bothيرسم خطوط الشبكة عند العلامات الرئيسية أو الفرعية أو كليهما.
xticklistمواضع العلامات الصريحة كقائمة مفصولة بفواصل.
xticklabelslistتسميات مخصصة لكل علامة؛ تدعم مدخلات وضع الرياضيات.
width / heightlengthPhysical size of the axis box, e.g. 10cm or 0.8\textwidth.
legend poskeywordموضع وسيلة الإيضاح: north east وsouth west وouter north east وغيرها.

مخططات متعددة ووسائل إيضاح

أضف عدة أوامر \addplot داخل بيئة axis نفسها لتراكب المنحنيات. أتبع كل منها بـ \addlegendentry{label} لملء وسيلة الإيضاح تلقائيًا. يتحكم الخيار legend pos في الموضع؛ استخدم outer north east لوضع وسيلة الإيضاح خارج إطار المحور وتجنب تغطية بياناتك.

تقبل تسميات العلامات المخصصة عبر xticklabels كسورًا في وضع الرياضيات مثل $\frac{\pi}{2}$ . ويُدرج الخيار minor tick num=1 علامة فرعية واحدة بين كل علامتين رئيسيتين.

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    title={Trigonometric Functions},
    xlabel={$x$ (radians)},
    ylabel={$y$},
    xmin=0, xmax=6.2832,
    ymin=-1.3, ymax=1.3,
    xtick={0,1.5708,3.1416,4.7124,6.2832},
    xticklabels={$0$, $\frac{\pi}{2}$, $\pi$, $\frac{3\pi}{2}$, $2\pi$},
    grid=both,
    minor tick num=1,
    legend pos=outer north east,
    width=10cm,
    height=6cm,
  ]
    \addplot[blue, thick, domain=0:6.2832, samples=200] {sin(deg(x))};
    \addlegendentry{$\sin(x)$}
    \addplot[red,  thick, domain=0:6.2832, samples=200] {cos(deg(x))};
    \addlegendentry{$\cos(x)$}
  \end{axis}
\end{tikzpicture}

\end{document}

أنواع المخططات

يدعم pgfplots عدة معالجات للمخططات عبر الأمر \addplot. يُختار المعالج عبر خيارات المخطط أو صياغة الإحداثيات.

مخطط دالة

ارسم أي تعبير رياضي على نطاق باستخدام domain وsamples.

\addplot[color, thick, domain=a:b] {expr};

التبعثر / الإحداثيات

ارسم نقاط بيانات منفصلة مقدمة مباشرةً في الملف المصدري.

\addplot[only marks] coordinates { (x1,y1) (x2,y2) };

مخطط أعمدة

مخطط أعمدة رأسية باستخدام معالج المخطط ybar مع أزواج الإحداثيات.

\addplot[ybar] coordinates { (1,3) (2,5) (3,2) };

من ملف

حمّل بيانات جدولية من ملف CSV خارجي أو ملف مفصول بمسافات.

\addplot table {data.csv};

تخصيص أنماط المحاور

ثلاثة تعديلات شائعة في الأنماط تجعل المخططات تبدو متقنة في المستندات الأكاديمية.

نظام الألوان

طبّق خريطة ألوان pgfplots على سطح أو مخطط تبعثر بإضافة colormap/cool كخيار للمحور.

colormap/cool

حجم الخط

غيّر مقياس تسميات العلامات بشكل مستقل عن خط المستند باستخدام tick label style={font=\small} داخل خيارات المحور.

tick label style={font=\small}

نمط الشبكة

خصّص مظهر خطوط الشبكة بضبط grid style={dashed, gray!40} في خيارات المحور.

grid style={dashed, gray!40}

أشكال فرعية متعددة

لوضع مخططين أو أكثر جنبًا إلى جنب في شكل واحد، اجمع pgfplots مع حزمة subcaption. يوجد كل مخطط داخل بيئة subfigure. اضبط width=\linewidth داخل خيارات المحور ليملأ كل مخطط عموده. استخدم \hfill بين الأشكال الفرعية لتوزيع المساحة الأفقية بالتساوي.

يوفر الأمر الخارجي \caption في بيئة figure العنوان العام، بينما يحصل كل subfigure على عنوانه الفرعي الموسوم تلقائيًا (a) و(b) وهكذا.

\documentclass{article}
\usepackage{pgfplots}
\usepackage{subcaption}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[htbp]
  \centering
  \begin{subfigure}{0.48\textwidth}
    \begin{tikzpicture}
      \begin{axis}[width=\linewidth, title={$\sin(x)$}, grid=major]
        \addplot[blue, thick, domain=0:6.2832, samples=100] {sin(deg(x))};
      \end{axis}
    \end{tikzpicture}
    \caption{Sine function}
  \end{subfigure}
  \hfill
  \begin{subfigure}{0.48\textwidth}
    \begin{tikzpicture}
      \begin{axis}[width=\linewidth, title={$\cos(x)$}, grid=major]
        \addplot[red, thick, domain=0:6.2832, samples=100] {cos(deg(x))};
      \end{axis}
    \end{tikzpicture}
    \caption{Cosine function}
  \end{subfigure}
  \caption{Trigonometric functions side by side}
\end{figure}

\end{document}

جرّب مخطط الموجة الجيبية

افتح مثال موجة جيبية جاهزًا للتجميع مباشرةً في الـ playground الخاص بـ FormaTeX. عدّله مباشرةً ونزّل ملف PDF دون الحاجة إلى تثبيت.

الأسئلة الشائعة

جمّع مخطط pgfplots الخاص بك

يجمّع FormaTeX شيفرة LaTeX في السحابة دون الحاجة إلى تثبيت TeX محليًا. سجّل مجانًا وابدأ الرسم في ثوانٍ.