Gnuplot وما يؤكل به



من المؤكد أن العديد منكم الذين يتصفحون المنشورات العلمية الغربية قد شاهدوا رسومات جميلة وبسيطة. ربما تساءل البعض منكم عما تصور هؤلاء النقاد بياناتهم فيه. والآن هناك أداة رسوم بيانية رائعة وبسيطة للغاية ، وهي موجودة في كل مكان تقريبًا: Windows و Linux و android وغيرها ، أنا متأكد من وجودها حتى تحت DOS. إنها موثوقة وبسيطة وتسمح لك بتقديم أي بيانات نصية في شكل رسوم بيانية جميلة.



لماذا gnuplot؟



إذا كنت قد قرأت بالفعل مقالاتي " اختبار السرعة المتزامن على عدة أجهزة مودم LTE " ، " التذبذبات التوافقية " ، " إنشاء مولد رقم عشوائي للأجهزة ") ، فربما تكون قد لاحظت الرسوم البيانية الجميلة.





رسم بياني من المنشور حول مولد الأرقام العشوائية





صورة من المنشور حول أجهزة المودم المتخصصة



الرسوم البيانية بسيطة ورائعة . الميزة الأكثر قيمة لـ gnuplot هي أنه لرسمها فإنك تحتاج فقط إلى ملف نصي يحتوي على البيانات الأولية ، gnuplot على نظام التشغيل المفضل لديك (OpenWRT رغم ذلك) ومحرر اختبار vim المفضل لديك.



للوهلة الأولى ، قد يبدو أن استخدام gnuplot أكثر صعوبة في التخطيط من MS Excel. ولكن يبدو أن عتبة الإدخال أعلى قليلاً على ما يبدو (لا يمكنك استخدام الماوس للنقر عليه ، تحتاج إلى قراءة الوثائق هنا) ، ولكن من الناحية العملية ، يصبح الأمر أسهل بكثير وأكثر ملاءمة. لقد كتبت سيناريو مرة واحدة وكنت أستخدمه طوال حياتي. من الصعب جدًا بالنسبة لي رسم رسم بياني في Exel ، حيث كل شيء غير منطقي ، مقارنة بـ gnuplot. والميزة الرئيسية لـ gnuplot هي أنه يمكنك تضمينه في برامجك وتصور البيانات أثناء التنقل. يقوم gnuplot أيضًا بدون أي مشاكل ببناء رسم بياني من ملف 30 جيجا بايت من البيانات الإحصائية ، بينما تعطل Exel ببساطة ولم يتمكن من فتحه.



تشمل مزايا gnuplot حقيقة أنه يمكن دمجها بسهولة في الكود بلغات البرمجة القياسية. توجد مكتبات جاهزة للعديد من اللغات ، وأنا شخصياً صادفت php و python. وبالتالي ، يمكنك إنشاء رسوم بيانية مباشرة من برنامجك.



على سبيل المثال ، سأقول إن صديقي العزيز ، عندما كانت تكتب أطروحتها ، أتقنت gnuplot (بناءً على اقتراحي). لم تكن أبدًا تقنية ، لكنها اكتشفت ذلك في إحدى الأمسيات. بعد ذلك ، قامت ببناء الرسوم البيانية هناك فقط ، وبدأ مستوى عملها يختلف بشكل إيجابي على خلفية الزملاء الذين يستخدمون Excel. بالنسبة لي شخصيًا ، فإن مؤشر الجودة العالية للعمل العلمي هو الرسوم البيانية التي أنشأتها البرامج المتخصصة.



وبالتالي ، فإن gnuplot بسيط وسهل الوصول وجميل. لنذهب أبعد من ذلك.



Gnuplot - تطبيق



هناك طريقتان للعمل مع gnuplot: وضع الأوامر ووضع تنفيذ البرنامج النصي. أوصي باستخدام الوضع الثاني على الفور ، لأنه الأكثر ملاءمة والأسرع. علاوة على ذلك ، فإن الوظيفة هي نفسها تمامًا.



لكن للبدء ، نقوم بتشغيل gnuplot في وضع الأوامر. قم بتشغيل gnuplot من سطر الأوامر ، أو بالطريقة المتاحة لنظام التشغيل الخاص بك. يمكنك البدء في تدريب ولا حتى من خلال قراءة هذا المقال، ولكن الحق من أول جدا مساعدة القيادة . ستعرض مساعدة رائعة ويمكنك المضي قدمًا في ذلك. لكننا سنتطرق إلى النقاط البارزة.



يتم رسم بياني من مؤامرة القيادة . كمعلمات أمر ، يمكنك تحديد وظيفة أو اسم ملف البيانات. بالإضافة إلى أي عمود من البيانات يجب استخدامه وكيفية توصيل النقاط وكيفية الإشارة إليها وما إلى ذلك. دعنا نوضح.



gnuplot> plot sin(x)







بعد تنفيذ الأمر ، سيتم فتح نافذة حيث سيكون هناك رسم بياني جيبي ، مع التوقيعات الافتراضية. دعنا نحسن هذا الرسم البياني ونكتشف بعض الخيارات الإضافية في نفس الوقت.

دعونا نوقع المحاور.



set xlabel "X"


تحدد التسمية لمحور الإحداثي.



set ylabel "Y"


يحدد تسمية المحور الإحداثي.



دعنا نضيف شبكة لإظهار مكان إنشاء الرسم البياني.



set grid


لا أحب حقيقة أن شكل الجيب على المحور الإحداثي يقع في نهاية الرسم البياني ، لذلك سنقوم بتعيين حدود القيم التي سيقتصر عليها الرسم البياني.



set yrange [-1.1:1.1] 


وبالتالي ، سيتم رسم الرسم البياني من القيمة الدنيا -1.1 إلى الحد الأقصى للقيمة 1.1.

وبالمثل ، قمت بضبط نطاق الحد الفاصل بحيث تظهر فترة واحدة فقط من الجيب.



set xrange[-pi:pi]


نحتاج إلى إضافة عنوان إلى جدولنا بحيث يكون كل شيء في فنغ شوي.



set title "Gnuplot for habr" font "Helvetica Bold, 20"


لاحظ أنه يمكنك ضبط الخطوط وأحجامها. راجع وثائق gnuplot لمعرفة الخطوط التي يمكن استخدامها.



وأخيرًا ، بالإضافة إلى الجيب في الرسم البياني ، فلنرسم جيب التمام أيضًا ، ونضبط نوع الخط ولونه أيضًا. ونضيف أيضًا أساطير ، ما الذي نرسمه.



plot sin(x) title "sinux" lc rgb "red", cos(x)  title "cosinus" lc rgb "green"


هنا نرسم رسمين بيانيين على لوحة واحدة باللونين الأحمر والأخضر. بشكل عام ، هناك الكثير من الخيارات للخطوط (خط منقط ، حد ، صلب) ، عرض الخط ، الألوان. وكذلك أنواع النقاط. هدفي هو فقط إظهار نطاق الاحتمالات. دعنا نجمع كل الأوامر في كومة واحدة وننفذها بالتتابع. لإعادة ضبط الإعدادات السابقة ، أدخل إعادة تعيين.



reset
set xlabel "X" 
set ylabel "Y"
set grid
set yrange [-1.1:1.1]
set xrange[-pi:pi]
set title "Gnuplot for habr" font "Helvetica Bold, 20"
plot sin(x) title "sinux"  lc rgb "red", cos(x)  title "cosinus" lc rgb "green"


نتيجة لذلك ، نحصل على مثل هذا الجمال.





لم يعد من العار نشر الجدول في مجلة علمية.



إذا كررت كل هذا بعدي بصدق ، فربما تكون قد لاحظت أن إدخاله يدويًا في كل مرة ، حتى النسخ ، ليس بطريقة أو بأخرى comme il faut. لكن هل هذا نص جاهز؟ لنفعلها اذا!

اخرج من وضع الأمر باستخدام الأمر exit وأنشئ ملفًا:



vim testsin.gpi


#! /usr/bin/gnuplot -persist
set xlabel "X" 
set ylabel "Y"
set grid
set yrange [-1.1:1.1]
set xrange[-pi:pi]
set title "Gnuplot for habr" font "Helvetica Bold, 20"
plot sin(x) title "sinux"  lc rgb "red", cos(x)  title "cosinus" lc rgb "green"


نجعلها قابلة للتنفيذ ونشغلها. حسنًا ، لا تنسَ كيفية الخروج من vim.



chmod +x testsin.gpi
./testsin.gpi


نتيجة لذلك ، نحصل على نفس النافذة مع الرسوم البيانية. إذا لم تتم إضافة "-persist" إلى العنوان ، فسيتم إغلاق النافذة تلقائيًا بعد تنفيذ البرنامج النصي.



ولكن ليس من الضروري في كثير من الأحيان إنشاء نافذة ، بالإضافة إلى أنه ليس من الملائم دائمًا استخدامها ، ويمكنك العمل في نظام تشغيل بدون واجهة المستخدم الرسومية. في كثير من الأحيان تحتاج إلى تلقي ملفات الرسوم. أنا شخصياً أفضل تنسيق ناقل التذييل ، لأنه مع وجود عدد كبير من النقاط ، يمكنك تكبير أجزاء مختلفة من الرسم البياني دون فقدان الجودة. وأيضًا ، يقوم العارض في Linux تلقائيًا بتحديث النافذة بالرسم البياني عند تغيير ملف التذييل ، وهو أمر مناسب أيضًا.



من أجل إخراج البيانات إلى ملف وليس إلى الشاشة ، تحتاج إلى إعادة تعيين الجهاز.



set terminal png size 800, 600
set output "result.png"


كما قد تظن ، نشير إلى نوع الملف ودقته ، ثم نشير إلى اسم الملف. أضف هذين السطرين إلى بداية البرنامج النصي الخاص بنا ، وسنحصل على هذه الصورة في المجلد الحالي.







من أجل الحفظ في التذييل ، تحتاج إلى استخدام الأوامر التالية:



set terminal postscript eps enhanced color solid
set output "result.ps"


بيانات حقيقية



من المؤكد أن رسم الجيب وجيب التمام أمر رائع ، ولكن لا يزال رسم البيانات الحقيقية أكثر إثارة للاهتمام! دعني أذكرك بمهمة حديثة كتبت عنها مقالًا - عرض الرسوم البيانية لسرعة الإنترنت على مدى فترات طويلة من الزمن. كان تنسيق البيانات على النحو التالي.



المشغل أو العامل؛ #اختبار؛ تاريخ؛ زمن؛ إحداثيات تنزيل ميغابايت / ثانية ؛ تحميل ميغا بايت / ثانية ؛ بينغ. Testserver

Rostelecom؛ 0؛ 05/21/2020؛ 09:56: 00؛ NA، NA؛ 3.7877656948451692؛ 5.231226008184113؛ 132.227؛ MaximaTelecom (موسكو) [0.12 كم]: 132.227 مللي ثانية

Rostelecom؛ 1؛ 05/21/2020؛ 10:01 : 02 ؛ NA، NA؛ 5.274994541394363؛ 5.1088572634075815؛ 127.52؛ MaximaTelecom (موسكو) [0.12 كيلومتر]: 127.52 مللي ثانية

Rostelecom؛ 2؛ 05.21.2020؛ 10: 04: 35؛ NA، NA؛ 3.61044819424076؛ 4.624132180211938؛ 0.12 كم]: 135.456 مللي ثانية


يمكن ملاحظة أن لدينا فاصلة منقوطة كفاصل ، نحتاج إلى عرض سرعة التنزيل وسرعة التحميل حسب الوقت. علاوة على ذلك ، إذا كنت تولي اهتماما للتاريخ والوقت في أعمدة مختلفة. الآن سأخبرك كيف تمكنت من التغلب على هذا. سوف أذكر على الفور النص الذي تم بناء الرسم البياني به.



#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "Rostelecom.ps"

#set terminal png size 1024, 768
#set output "Rostelecom.png"
 
set datafile separator ';'
set grid xtics ytics
set xdata time
set timefmt '%d.%m.%Y;%H:%M:%S'

set ylabel "Speed Mb/s"
set xlabel 'Time'
set title "Rostelecom Speed"

plot "Rostelecom.csv" using 3:6 with lines title "Download", '' using 3:7 with lines title "Upload"
 
set title "Rostelecom 2 Ping"
set ylabel "Ping ms"
plot "Rostelecom.csv" using 3:8 with lines title "Ping"


في بداية الملف ، قمنا بتعيين ملف إخراج بوستسكريبت (أو png ، إذا لزم الأمر).



تعيين فاصل ملف البيانات '؛' - قمنا بتعيين الحرف المحدد. يتم فصل الأعمدة بمسافة افتراضيًا ، لكن ملف csv يقدم العديد من خيارات المحدد ويجب أن تكون قادرًا على استخدامها جميعًا.

تعيين شبكة xtics ytics - اضبط الشبكة (يمكنك ضبط الشبكة على طول محور واحد فقط).

ضبط وقت xdata هو نقطة مهمة ، نحن نتحدث عن حقيقة أن تنسيق البيانات على المحور X سيكون الوقت.

ضبط الوقت '٪ d.٪ m.٪ Y؛٪ H:٪ M:٪ S ' - اضبط تنسيق بيانات الوقت. يرجى ملاحظة أن حرف محدد العمود ("؛") مضمن في تنسيق الوقت ، لذلك سنتعامل مع عمودين على أنهما عمود واحد.



وضعنا تسميات المحاور والرسم البياني. ثم نبني رسمًا بيانيًا.



ارسم "Rostelecom.csv" باستخدام 3: 6 مع عنوان السطور "تنزيل" ، باستخدام 3: 7 مع عنوان السطور "تحميل" - نرسم سرعة التنزيل وسرعة التحميل على رسم بياني واحد. استخدام 3: 6 هو رقم العمود في ملف البيانات المصدر ، ما نبنيه من (X: Y).



ثم نرسم الرسم البياني ping بنفس الطريقة. سيبدو الرسم البياني الناتج هكذا.





هذه لقطة شاشة من التذييل. ترجع الخطوط المستقيمة في الرسم البياني إلى حقيقة وجود فجوات في البيانات. هنا مثال حقيقي للتآمر.



و 3 D ؟؟؟



هل تريد 3D؟ لدي منهم!



فكرت لفترة طويلة في أي مثال للرسومات ثلاثية الأبعاد لأعطيه ، ولم أتوصل إلى أي شيء أفضل من تخيل الصورة. في الواقع ، الصورة في جوهرها هي رسم بياني ثلاثي الأبعاد ، حيث يكون سطوع البكسل هو الإحداثي z. لذلك دعونا نلعب القليل من المشاغبين.

التقط الصورة الأكثر شهرة لأينشتاين.





ودعونا نخرج منه رسم بياني. للقيام بذلك ، قم بتحويله إلى تنسيق pgm ASCII وإزالة جميع المسافات ، واستبدالها بسطر جديد ، باستخدام هذا الأمر البسيط.



convert Einstein.jpg  -compress none pgm:- | tr -s '\012\015' ' '  | tr -s ' ' '\012'> outfile.pgm 


بالنسبة لأولئك الذين لا يفهمون ما يحدث هنا ، أشرح: نحن نستخدم imagemagic لتحويل الصورة إلى تنسيق pgm ، ثم نستخدم tr لاستبدال حرف العودة بسطر جديد إلى مسافة ، ثم يتم إرجاع كل المسافات إلى سطر جديد وحفظها كلها في ملف خارجي. pgm. يمكن لأي شخص صعب فتح الملف في gimp وتصديره بتنسيق pgm-ASCII.



ثم نفتح الملف الناتج باستخدام محررنا المفضل vim ونزيل العنوان منه. في حالتي ، هذه هي الأسطر الثلاثة الأولى. لا تنس معرفة دقة الملف من العنوان ، في هذه الحالة كانت 325 × 408 بكسل. هذا كل شيء ، لدينا ملف نصي لإحداثيات Z! مهمتنا الآن هي إضافة إحداثيات X و Y ، لذلك سنقوم بتشغيل كل هذا من خلال نص برمجي Python.



f = open('outfile.pgm')
for x in range(408):
	for y in range(325):
		line = f.readline()
		print ('%d %d %s' % (x, y, line)),
f.close()


احفظ هذا باسم convert.py وقم بتشغيل:



python convert.py > res.txt


هذا كل شيء ، يحتوي ملف res.txt الآن على إحداثيات أينشتاين ... حسنًا ، أو بالأحرى إحداثيات صورته. حسنًا ، بشكل عام ، تحصل على الفكرة :).



...

406 317 60

406 318 54

406 319 30

406 320 41

406 321 84

406 322 101

406 323 112

406 324 119

407 0 128

407 1 53

407 2 89

407 3 95

407 4 87

...


ملف عينة.



يبدو نص بناء هذا الجمال هكذا.



#! /usr/bin/gnuplot -persist
#set terminal png size 1024, 768
#set output "result.png"
#set grid xtics ytics

#set terminal postscript eps enhanced color solid
#set output "result.ps"

set title "Albert Einstein"
set palette gray
set hidden3d
set pm3d at bs
set dgrid3d 100,100 qnorm 2
set xlabel "X" font "Helvetica Bold	,18"
set ylabel "Y" rotate by 90 font "Helvetica Bold	,18"
set zlabel "Z" font "Helvetica Bold	,18"

set xrange [0:408]
set yrange [0:325]
set zrange [-256:256]
unset key 
splot "./res.txt" with l 


قبل أن نذهب إلى تحليل البرنامج النصي ، إذا كررت ذلك ، فإنني أوصيك بشدة بتنفيذ أسطر البرنامج النصي في وضع الأوامر بحيث يمكنك تدوير المخطط بالماوس (بالطبع ، دون تحديد المحطة الطرفية المحددة). إنه رائع جدا!



أولاً ، قمنا بتعيين نوع بيانات الإخراج ، وكذلك حدود البيانات. يتم تعيين الحدود وفقًا لحجم الصورة ، بالإضافة إلى أنه من الأسفل قمت بتباعد 256 حرفًا على طول المحور Z بحيث يكون إسقاط الصورة مرئيًا. بعد ذلك ، نتجه إلى الرسم البياني ، ونسمي المحاور. باستخدام أمر مفتاح unset - أقوم بتعطيل وسائل الإيضاح (ليست ضرورية على الرسم البياني). وهنا يأتي السحر الحقيقي!



وضع لوحة رمادية - وضعنا اللوحة. إذا تم تركه افتراضيًا ، فسيتم تلوين الرسم البياني كما هو الحال في جهاز التصوير الحراري. كلما كانت البقعة أعلى ، كلما كانت البقعة صفراء ، كلما انخفض اللون الأحمر الداكن.



تعيين hidden3d- كما هو الحال ، يمتد السطح المنحني (يزيل الخطوط) ، وبالتالي يشكل سطحًا محدبًا جميلًا.



اضبط pm3d على bs - قم بتشغيل نمط رسم البيانات ثلاثي الأبعاد ، والذي يرسم البيانات بإحداثيات شبكية ولون. اقرأ المزيد في الوثائق ، الوصف الأكثر تفصيلاً خارج نطاق المقالة.



اضبط dgrid3d 100،100 qnorm 2 - اضبط حجم خلايا الشبكة على 100x100 ، وضبط الحواف بين الخلايا. القيمة 100x100 كبيرة جدًا بالفعل ، والبرنامج بطيء جدًا. qnorm 2 هو anti-aliasing (استيفاء البيانات بين الخلايا).



لصق "./res.txt" مع l - ارسم الرسم البياني الناتج. يعني "مع l" رسم الرسم البياني بالخطوط. هذا اختراق صغير ، لأن النقاط مرئية على الرسم البياني (يمكن تعيين نقاط صغيرة).



بعد الإطلاق ، ننتظر بعض الوقت ، ونحصل على "نقش أساسي" متعدد الأضلاع. حاول تجربة الإعدادات للحصول على خيارات عرض أخرى.





الصورة في وضع الأوامر بعد تدويرها.



حكاية تتبادر إلى الذهن على الفور.

كيف تجد ساحة لينين؟

فقط شخص غير متعلم سيجيب على هذا السؤال ، وهو أنه من الضروري مضاعفة ارتفاع لينين في عرض لينين.

يعرف الشخص المتعلم أن يأخذ جزءًا لا يتجزأ من السطح.


استخدام gnuplot في برامجك



المثال مأخوذ من stackoverflow مع التعديلات الطفيفة.



يُنشئ الرمز ملفًا نصيًا ويؤدي باستمرار إلى إعادة بناء الرسم البياني. سأعلق الكود تحت المفسد حتى لا تمزق المقال.



عينة رمز C باستخدام gnuplot
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


float s=10.;
float r=28.;
float b=8.0/3.0;
/* Definimos las funciones */
float f(float x,float y,float z){
    return s*(y-x);
}
float g(float x,float y,float z){
    return x*(r-z)-y;
}
float h(float x,float y,float z){
    return x*y-b*z;
}
FILE *output;
FILE *gp;

int main(){
    gp = popen("gnuplot -","w");
    output = fopen("lorenzgplot.dat","w");
    float t=0.; 
    float dt=0.01;
    float tf=30;
    float x=3.;
    float y=2.;
    float z=0.;
    float k1x,k1y,k1z, k2x,k2y,k2z,k3x,k3y,k3z,k4x,k4y,k4z;
    fprintf(output,"%f %f %f \n",x,y,z);
    fprintf(gp, "splot './lorenzgplot.dat' with lines \n");
/* Ahora Runge Kutta de orden 4 */  
    while(t<tf){
        /* RK4 paso 1 */
        k1x = f(x,y,z)*dt;
        k1y = g(x,y,z)*dt;
        k1z = h(x,y,z)*dt;
        /* RK4 paso 2 */
        k2x = f(x+0.5*k1x,y+0.5*k1y,z+0.5*k1z)*dt;
        k2y = g(x+0.5*k1x,y+0.5*k1y,z+0.5*k1z)*dt;
        k2z = h(x+0.5*k1x,y+0.5*k1y,z+0.5*k1z)*dt;
        /* RK4 paso 3 */
        k3x = f(x+0.5*k2x,y+0.5*k2y,z+0.5*k2z)*dt;
        k3y = g(x+0.5*k2x,y+0.5*k2y,z+0.5*k2z)*dt;
        k3z = h(x+0.5*k2x,y+0.5*k2y,z+0.5*k2z)*dt;
        /* RK4 paso 4 */
        k4x = f(x+k3x,y+k3y,z+k3z)*dt;
        k4y = g(x+k3x,y+k3y,z+k3z)*dt;
        k4z = h(x+k3x,y+k3y,z+k3z)*dt;
        /* Actualizamos las variables y el tiempo */
        x += (k1x/6.0 + k2x/3.0 + k3x/3.0 + k4x/6.0);
        y += (k1y/6.0 + k2y/3.0 + k3y/3.0 + k4y/6.0);
        z += (k1z/6.0 + k2z/3.0 + k3z/3.0 + k4z/6.0);
        /* finalmente escribimos sobre el archivo */

        fprintf(output,"%f %f %f \n",x,y,z);
        fflush(output); 
        usleep(10000);
        fprintf(gp, "replot \n");
        fflush(gp);
        t += dt;
    }
    fclose(gp);
    fclose(output);
    return 0;
}




يعمل الرمز بكل بساطة ، نفتح أنبوبًا:



gp = popen("gnuplot -","w");


هذا مشابه للشريط العمودي في bash ، عندما نكتب أمرًا آخر بعد أمر واحد ، فقط داخل البرنامج. نكتب البيانات إلى ملف lorenzgplot.dat. اتصل بأمر Splot في gnuplot مرة واحدة:



fprintf(gp, "splot './lorenzgplot.dat' with lines \n");


وبعد ذلك ، عند إضافة نقطة جديدة ، نعيد بناء الرسم البياني.



fprintf(gp, "replot \n");


نتيجة لذلك ، حصلنا على بناء بطيء لطيف للغاية لـ Lorenz Attractor. يوجد أدناه مقطع فيديو تم التقاطه منذ ما يقرب من عشر سنوات بكاميرا قديمة ، لذا لا تقسم كثيرًا. ما هو مهم في الفيديو هو أنه يعمل بشكل رائع على جهاز قديم مثل Nokia N800. من المستحسن مشاهدته بدون صوت.







من المهم أن نفهم أن أمر إعادة التشغيل يستهلك الذاكرة ووقت المعالج جيدًا ، أي أن مثل هذا التخطيط لا يبطئ النظام كثيرًا. لذلك ، مع كل الحب لـ gnuplot ، هذه ليست أفضل طريقة لاستخدامه. مشكلة أخرى هي أنه لا يمكن إغلاق هذه النافذة أو نقلها.



خاتمة



أخيرًا ، أريد أن أعرض مقطع فيديو جمعت فيه مئات الرسوم البيانية للتوزيع اللوغاريتمي العشوائي لتسجيلات الجسيمات المشعة ، بيانات حقيقية من دراسة واحدة. يمكن وينبغي مشاهدة الفيديو بالصوت.







في هذا المقال ، لم أستطع تحديد جزء من الألف من إمكانيات هذا الراسم ، إلا أنني قد أطلعت القارئ على هذا البرنامج قليلاً. بعد ذلك ، يجب أن تبحث عن أمثلة بنفسك ، اقرأ الوثائق الموجودة على الموقع الرسمي gnuplot.sourceforge.net أو www.gnuplot.info . تأكد من إلقاء نظرة على الأمثلة ، فهناك الكثير من الأشياء الشيقة والمفيدة.



كبداية ، يمكنني أيضًا أن أوصي بمقدمة موجزة عن gnuplot (rus) . أنا مندهش بصدق لأن مثل هذا البرنامج الرائع لم يتم دراسته في جميع الجامعات التقنية على قدم المساواة مع اللاتكس. لسبب ما ، تعلمنا MS Excel و Word.



تعلم gnuplot ليس بالأمر الصعب ، لقد أمضيت حرفيًا بضعة أيام في محاولة لمعرفة ذلك من الصفر. لكن مع هذا المقال ، أعتقد أن كل شيء سيكون أسرع بالنسبة لك. لقد نسيت الآن أي متآمرين Exel / Calc ، فأنا أستخدم gnuplot فقط. علاوة على ذلك ، فأنا لا أعرف حتى عُشر كل إمكانيات رسم الرسوم البيانية.



أريد أن أشير إلى أن هناك العديد من المتآمرين الآخرين ، ليس أسوأ من gnuplot ، خاصة أنه قديم جدًا. لكن بالنسبة لي ، تبين أن gnuplot هو الأبسط والأكثر شمولاً. بالإضافة إلى ذلك ، فهو الراسم الأكثر شيوعًا ، وهناك عدد كبير من الأمثلة على استخدامه على الويب. شكرا للقراءة!






All Articles