المخططات الشريطية باستخدام pgfplots
أضف ybar (أعمدة رأسية) أو xbar (أشرطة أفقية) إلى axis في pgfplots، وسمِّ الفئات باستخدام symbolic x coords، وأعطِ كل سلسلة على شكل \addplot مع إحداثيات.
أعمدة رأسية بفئات مسمّاة
يحوّل ybar على المحور كل سلسلة إلى أعمدة. يسرد symbolic x coords أسماء الفئات بالترتيب، ويضع xtick=data علامة تدريج واحدة تحت كل عمود.
سلسلة واحدة من الأعمدة
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0,
symbolic x coords={Mon, Tue, Wed, Thu, Fri},
xtick=data,
ylabel={Visitors},
enlarge x limits=0.15,
]
\addplot coordinates {(Mon,44) (Tue,31) (Wed,38) (Thu,27) (Fri,40)};
\end{axis}
\end{tikzpicture}تبدأ الأعمدة من الصفر. ومن دون ymin=0 يضيف المحور مساحة صغيرة تحت الصفر، لذا اضبطه لتقف الأعمدة على الإطار. ويضيف enlarge x limits مساحة على الجانبين، فلا يقطع الإطارُ العمودين الطرفيين.
أعمدة مجمّعة وتسميات القيم
مع عدة سلاسل تقف أعمدة كل فئة جنبًا إلى جنب. يطبع nodes near coords كل قيمة فوق عمودها، ويحدد bar width العرض (10pt افتراضيًا).
سلسلتان، مع القيم على الأعمدة
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, ymax=55, bar width=12pt,
symbolic x coords={Erika, Hans, John},
xtick=data, enlarge x limits=0.25,
nodes near coords,
ylabel={Points},
legend style={at={(0.5,-0.12)}, anchor=north, legend columns=2},
]
\addplot coordinates {(Erika,44) (Hans,31) (John,38)};
\addplot coordinates {(Erika,40) (Hans,36) (John,29)};
\legend{Round 1, Round 2}
\end{axis}
\end{tikzpicture}يحدد ybar=4pt الفجوة بين أعمدة المجموعة الواحدة (2pt افتراضيًا).
الأعمدة المكدّسة
يضع ybar stacked السلاسل فوق بعضها بدلًا من وضعها جنبًا إلى جنب. يبدأ \addplot الثاني حيث ينتهي الأول.
أعمدة مكدّسة لكل ربع سنة
\begin{tikzpicture}
\begin{axis}[
ybar stacked, ymin=0, bar width=16pt,
symbolic x coords={Q1, Q2, Q3, Q4},
xtick=data, enlarge x limits=0.2,
legend pos=north west, ylabel={Sales},
]
\addplot coordinates {(Q1,12) (Q2,18) (Q3,15) (Q4,22)};
\addplot coordinates {(Q1,6) (Q2,9) (Q3,12) (Q4,10)};
\legend{Online, In store}
\end{axis}
\end{tikzpicture}الأشرطة الأفقية
يرسم xbar الأشرطة من اليسار إلى اليمين. بدّل دوري المحورين: توضع الفئات في symbolic y coords وytick=data، ويُكتب كل إحداثي على شكل (القيمة، الفئة).
أشرطة أفقية
\begin{tikzpicture}
\begin{axis}[
xbar, xmin=0, xmax=50,
symbolic y coords={Rust, Python, C},
ytick=data, enlarge y limits=0.3,
nodes near coords, xlabel={Projects},
width=8cm, height=5cm,
]
\addplot coordinates {(44,Rust) (31,Python) (12,C)};
\end{axis}
\end{tikzpicture}ويعمل xbar stacked أيضًا.
الأرقام فئاتٍ
لا تحتاج السنوات والأرقام الأخرى إلى symbolic x coords: ارسمها أرقامًا واستخدم xtick=data. يكتب pgfplots العدد 2024 افتراضيًا على شكل "2,024"؛ فأوقف فاصل الآلاف في نمط تسميات علامات التدريج.
السنوات على المحور x
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, xtick=data, enlarge x limits=0.25,
x tick label style={/pgf/number format/1000 sep=},
]
\addplot coordinates {(2023,18) (2024,31) (2025,44)};
\end{axis}
\end{tikzpicture}الخيارات في لمحة
| الخيار | ما يفعله | في Scissor LaTeX |
|---|---|---|
ybar، xbar | أعمدة رأسية أو أشرطة أفقية، جنبًا إلى جنب | يعمل |
ybar=4pt | الفجوة بين أعمدة المجموعة الواحدة | يعمل |
ybar stacked، xbar stacked | أعمدة فوق بعضها | يعمل على المحاور الخطية |
bar width=12pt | عرض كل عمود | يعمل |
bar shift=.. | إزاحة سلسلة جانبيًا | يعمل |
nodes near coords | القيمة فوق كل عمود (أو بجانبه) | يعمل |
symbolic x coords، symbolic y coords | فئات مسمّاة | يعمل، باستثناء الأسماء التي تبدو أرقامًا (بلا تسميات لعلامات التدريج) |
xticklabel style={rotate=45, anchor=east} | أسماء فئات مائلة | يعمل |
ybar interval | أعمدة تملأ المسافة بين قيم x | جزئيًا: تُرسم أعمدةً عادية عند قيم x |
hist (مكتبة statistics) | عدّ القيم في فئات | غير مدعوم: يُتجاهل مع رسالة، وتُرسم القيم الخام خطًا |
ما الذي يختلف عن تثبيت TeX
جميع الأمثلة في هذه الصفحة تُصرَّف أيضًا مع pgfplots في تثبيت TeX. الدليل: ctan.org/pkg/pgfplots.
راجع أيضًا أساسيات pgfplots وأشرطة الخطأ والبيانات من CSV وpgfplots.
أسئلة وأجوبة
كيف أنشئ مخططًا شريطيًا في LaTeX؟
حمّل pgfplots واكتب \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] مع \addplot coordinates {(A,3) (B,5) (C,2)}; واحد لكل سلسلة.
كيف أعرض القيم فوق الأعمدة؟
أضف nodes near coords إلى خيارات المحور. فيحصل كل عمود على قيمته تسميةً.
كيف أجعل الأعمدة تبدأ من الصفر؟
إنها تبدأ من الصفر أصلًا. اضبط ymin=0 على المحور (أو xmin=0 مع xbar) لإزالة المساحة تحتها.
كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.