Gnuplot 5.0. DIY العنكبوت 4 محاور

صورة
عند العمل على تصور البيانات لمقال ، أصبح من الضروري أن يكون لديك 4 محاور ذات تصنيفات إيجابية على الإطلاق.


كما هو الحال مع مخططات المقالات الأخرى ، قررت استخدام gnuplot . بادئ ذي بدء ، نظرت في الموقع الرسمي ، حيث توجد أمثلة كثيرة. لقد كنت سعيدًا جدًا عندما وجدت المثال الضروري (لن أعمل كثيرًا مع ملف وسيكون جميلًا ، على ما أظن).
صورة
نسخ الرمز بسرعة وتشغيله. أحصل على خطأ. اني اتفهم. اتضح أن لدي gnuplot ( Version 5.0 patchlevel 3 last modified 2016-02-21) قديم ولا.

مع العلم مرونة gnuplot، بدأ نقب في جميع أنحاء الشبكة العالمية، وجاءت عبر عدة أمثلة مناسبة على ستاكوفيرفلوو ( مزدوجة المحور السيني على قطعة العنكبوت مع Gnuplot و كيفية إنشاء مؤامرة العنكبوت في Gnuplot؟ ) وجيثب ( gnuplot-radarchart ). أصبحوا نقطة البداية.

علاوة على ذلك ، أدت تلاعباتي بالأوامر إلى ما يلي:

0) إيقاف الحدود
unset border

1) إنشاء 4 خطوط صفرية - خطان رئيسيان وخطان إضافيان:
set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

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

2) تكوين عرض القراد على المحاور:
max = 1.5 #  
min = -max
set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            

مع القراد على محاور الإعدادات أكثر قليلاً.
axis- مكان وضع القراد على المحور أو (الحد - على الحد).
للمحور xالذي يذهب إلى اليمين 0,.5,max. الرقم الأول هو الأصل ، والثاني هو الخطوة ، والثالث هو نهاية العد. للأول من 0، وللباقي من 0.5، بحيث لا تتدخل الأصفار في الأصل.

خلط الأصفار في مركز الإحداثياتلا تعويض
خلط الأصفار في مركز الإحداثيات.
يتم *ticsتكوين كافة الفواصل الزمنية كـ0,.5,max
دون offset 0.35لxtics

scale 0.5,0.25 mirror يضيف الإعداد serifs إلى المحور. إذا كنت تتلاعب بالأرقام ، فسوف يتغير حجمها.
أقوم أيضًا بتقديم المتغيرات max, minالتي أتحكم معها في حدود محاور الرسم البياني.
لمزيد من المعلومات حول إعداد القراد ، راجع الوثائق في قسم Xtics .

3) تكوين نطاقات المحاور:
set xrange  [ min : max ] 
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

وتجدر الإشارة إلى أن محورين يبدأان في العد من minالزيادة ومحورين يبدأان maxمن التناقص.
راجع قسم Xrange لمزيد من المعلومات .

4) نعطي أسماء المحاور ونضعها بشكل جيد:
set label "H_1" at  0,       max center offset char  2, 0
set label "H_2" at  max+0.1, 0   center offset char -1, 1
set label "H_3" at  0,       min center offset char -2, 0
set label "H_4" at  min,     0   center offset char  0, 1

5) نقوم بتكوين بيانات الإدخال
، كل عمود يحتوي على عمودين. رقم الخط - رقم المحور ، السطر الخامس لإغلاق الحلقة. عمود فردي - تنسيق x، متساوي - y. نظرًا لحقيقة أن جميع النقاط تقع على المحاور ، فإن أحد الزوجين (x, y)يساوي دائمًا الصفر.
على الرغم من حقيقة أن جميع المحاور الأربعة إيجابية ، يتم نقل بعض البيانات بشكل مصطنع إلى النصف السلبي ، لأنها تقع على المحاور الرئيسية xو y.
 0  1  0     1.21
 1  0  1.21  0   
 0 -1  0    -1.06
-1  0 -1.19  0   
 0  1  0     1.21 #  

نتيجة
مجموع
كود كامل
#!/usr/bin/gnuplot -persist
#   cp1251      eps

set encoding cp1251
set terminal postscript eps enhanced monochrome size 5cm,5cm
set output "./img/eps/fig2.eps"

unset border
set key at -2, 1.5 font 'LiberationSerif, 23' 
set key left top samplen 4.5

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

max = 1.5
min = -max

set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35 font 'LiberationSerif, 20
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20

set xrange  [ min : max ]
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

set label "H_1" at  0,       max center offset char  2, 0   font 'LiberationSerif, 23'
set label "H_2" at  max+0.1, 0   center offset char -1, 1   font 'LiberationSerif, 23'
set label "H_3" at  0,       min center offset char -2, 0   font 'LiberationSerif, 23'
set label "H_4" at  min,     0   center offset char  0, 1   font 'LiberationSerif, 23'

set style line 1 linetype 1 pointtype 7 linewidth 3 linecolor black
set style line 2 linetype 2 pointtype 7 linewidth 3 linecolor black

plot 'data.csv' using  1:2 title "1" w lp ls 1 ,\
     'data.csv' using  3:4 title "2" w lp ls 2


All Articles