انتقل إلى المحتوى

رسم البيانات من ملف CSV

أضف الملف إلى مشروعك واكتب \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; داخل axis في pgfplots.

ارسم عمودين من ملف

ارفع ملف CSV إلى مشروعك (أو أنشئه هناك). يسمّي السطر الأول الأعمدة. ويختارها x= وy= بالاسم، ويوضّح col sep=comma أن الفواصل تفصل بين القيم.

تستخدم هذه الصفحة ملفًا صغيرًا، data-from-csv-weather.csv:

CSV
month,temp,rain,sd
1,1.2,44,0.8
2,2.0,38,0.7
3,5.6,41,0.9
...
12,2.3,46,0.8

درجة الحرارة لكل شهر من ملف CSV

\begin{tikzpicture}
  \begin{axis}[xlabel={Month}, ylabel={Temperature ($^\circ$C)}, xtick={1,...,12}]
    \addplot table[x=month, y=temp, col sep=comma] {data-from-csv-weather.csv};
  \end{axis}
\end{tikzpicture}
نضّده Scissor LaTeX: درجة الحرارة لكل شهر من ملف CSV

تعمل الملفات داخل المجلدات أيضًا: اكتب المسار كما هو في المشروع، مثل {data/weather.csv}.

عدة أعمدة وأعمدة الخطأ والقيم المحسوبة

اقرأ الملف نفسه مرة لكل سلسلة. يأخذ y error= أشرطة الخطأ من عمود، ويحسب y expr= قيمة من الصف، مع \thisrow{name} للإشارة إلى عمود.

سلسلتان من ملف واحد

\begin{tikzpicture}
  \begin{axis}[xlabel={Month}, ylabel={Value}, legend pos=north west, ymin=0]
    \addplot+[error bars/.cd, y dir=both, y explicit]
      table[x=month, y=temp, y error=sd, col sep=comma] {data-from-csv-weather.csv};
    \addplot+[mark=none, dashed]
      table[x=month, y expr=\thisrow{rain}/2, col sep=comma] {data-from-csv-weather.csv};
    \legend{Temperature ($^\circ$C), Rain / 2 (mm)}
  \end{axis}
\end{tikzpicture}
نضّده Scissor LaTeX: سلسلتان من ملف واحد

قراءة الجدول مرة واحدة

يقرأ \pgfplotstableread ملفًا إلى ماكرو، يمكن لكل \addplot بعد ذلك استخدامه. وهذا أقصر حين يغذّي الجدول نفسه عدة رسوم.

\pgfplotstableread ورسمان

\pgfplotstableread[col sep=comma]{data-from-csv-weather.csv}\weather
\begin{tikzpicture}
  \begin{axis}[ybar, bar width=6pt, ymin=0, xlabel={Month}, ylabel={Rain (mm)},
               xtick={1,...,12}, enlarge x limits=0.06]
    \addplot table[x=month, y=rain] {\weather};
  \end{axis}
\end{tikzpicture}

بيانات داخل المستند: filecontents

يمكن لمجموعات البيانات الصغيرة أن تعيش داخل ملف .tex نفسه. يكتب filecontents* محتواه ملفًا بذلك الاسم، يقرؤه \addplot table بعد ذلك. ويوضع الملف في التمهيد، قبل \begin{document}.

بيانات مكتوبة باستخدام filecontents*

\documentclass{article}
\usepackage{pgfplots}
\begin{filecontents*}{speed.dat}
t   v
0   0
1   4.4
2   8.1
3   11.0
4   13.2
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[xlabel={Time (s)}, ylabel={Speed (m/s)}]
    \addplot table[x=t, y=v] {speed.dat};
  \end{axis}
\end{tikzpicture}
\end{document}

هنا تفصل المسافات بين الأعمدة، وهو الإعداد الافتراضي في pgfplots، لذا لا حاجة إلى col sep.

خيارات الجدول

الخيارما يفعلهفي Scissor LaTeX
x=name، y=nameالأعمدة بالاسميعمل
x index=0، y index=1الأعمدة بالرقم، بدءًا من 0يعمل
col sep=commaوكذلك space وtab وsemicolon و&يعمل
header=falseالسطر الأول بيانات لا أسماءيعمل
skip first n=2تجاهل الأسطر الأولىيعمل
x expr=، y expr=حساب قيمة، باستخدام \thisrow{name} أو \thisrowno{n} أو \coordindexيعمل
y error=، x error=أعمدة أشرطة الخطأيعمل
comment chars=!محارف تعليق إضافية (تُتخطّى دائمًا الأسطر التي تبدأ بـ # و%)يعمل
\pgfplotstablereadقراءة جدول إلى ماكرويعمل
\pgfplotstabletypesetطباعة جدول على شكل جدول LaTeXغير مدعوم: يُتخطّى مع رسالة

تُعامَل الخلايا الفارغة وnan وinf قيمًا مفقودة وتُترك.

عندما يحدث خطأ ما

إذا قُرئ ملف .csv من دون col sep=comma، فإن Scissor LaTeX يعثر على الفواصل مع ذلك، فيُرسم الرسم، لكن تبويب «المشكلات» يطلب منك إضافة الخيار. أما تثبيت TeX فلن يخمّن، وسيفشل الرسم هناك.

col sep مفقود: يُرسم مع تذكير

\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[x=month, y=temp] {data-from-csv-weather.csv};
  \end{axis}
\end{tikzpicture}

تبويب المشكلات: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX

الملف غير الموجود في المشروع يُسقط ذلك الرسم. ويُرسم المحور على أي حال، ويذكر تبويب «المشكلات» اسم الملف المفقود.

ملف مفقود

\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[col sep=comma] {results.csv};
  \end{axis}
\end{tikzpicture}

تبويب المشكلات: Data file not in the project: results.csv

ما الذي يختلف عن تثبيت TeX

كل ما هنا من صياغة pgfplots، لذا تُصرَّف الملفات في تثبيت TeX أيضًا. الدليل: ctan.org/pkg/pgfplots. ولأشرطة الخطأ من الأعمدة، راجع أشرطة الخطأ.

أسئلة وأجوبة

كيف أرسم ملف CSV في LaTeX؟

ضع الملف في المشروع واكتب \addplot table[x=a, y=b, col sep=comma] {file.csv}; في محور، مع أسماء أعمدتك مكان a وb.

يستخدم ملف CSV عندي فواصل منقوطة. ماذا أكتب؟

استخدم col sep=semicolon. وللمسافات الجدولية استخدم col sep=tab.

هل يمكنني رسم عمود مقابل رقم الصف؟

نعم: يستخدم table[x expr=\coordindex, y=name] القيم 0 و1 و2 وهكذا قيمًا لـ x.

كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.