Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر

Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر
کسی مضمون کے لیے ڈیٹا ویژولائزیشن پر کام کرتے وقت، تمام پر مثبت لیبلز کے ساتھ 4 محوروں کا ہونا ضروری ہو گیا۔

جیسا کہ مضمون میں دوسرے گراف کے ساتھ، میں نے استعمال کرنے کا فیصلہ کیا۔ gnuplot. سب سے پہلے، میں نے سرکاری ویب سائٹ کو دیکھا، جہاں بہت سی مثالیں موجود ہیں۔ جب مجھے صحیح مل گیا تو میں بہت خوش ہوا۔ مثال کے طور پر (میں ایک فائل کے ساتھ تھوڑا سا کام کروں گا اور یہ خوبصورت ہوگا، میں نے سوچا)۔
Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر
میں نے جلدی سے کوڈ کاپی کیا اور اسے چلایا۔ مجھے ایک غلطی ہو گئی ہے۔ میں اس کا پتہ لگا رہا ہوں۔ پتہ چلا کہ میرے پاس ایک پرانا gnuplot ہے (Version 5.0 patchlevel 3 last modified 2016-02-21اور وہ ایسا نہیں کر سکتا۔

gnuplot کی لچک کے بارے میں جانتے ہوئے، میں نے ورلڈ وائڈ ویب کو اسکور کرنا شروع کیا اور اسٹیک اوور فلو (Gnuplot کے ساتھ مکڑی کے پلاٹ پر ڈبل ایکس محور и Gnuplot میں مکڑی کا پلاٹ کیسے بنایا جائے؟) اور گیتوب (gnuplot-radarchart)۔ وہ نقطہ آغاز بن گئے۔

مزید، کمانڈز کے ساتھ میری ہیرا پھیری کے نتیجے میں درج ذیل ہیں:

0) غیر فعال کریں۔ حدود

unset border

1) 4 صفر لائنیں بنائیں - 2 اہم اور 2 اضافی:

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، تاکہ صفر اصل میں مداخلت نہ کریں۔

Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر
Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر

کوآرڈینیٹ سینٹر میں صفر کو ملانا۔
تمام وقفے *tics کے طور پر ترتیب دیا 0,.5,max
بغیر offset 0.35 لیے xtics

ایڈجسٹمنٹ scale 0.5,0.25 mirror محور پر نشانات جوڑتا ہے۔ اگر آپ نمبروں کے ساتھ کھیلتے ہیں تو ان کا سائز بدل جائے گا۔
میں متغیرات بھی داخل کرتا ہوں۔ max, minجس کی مدد سے میں گراف محور کی حدود کو کنٹرول کرتا ہوں۔
ٹک سیٹ کرنے کے بارے میں اضافی معلومات سیکشن میں موجود دستاویزات میں مل سکتی ہیں۔ Xtics.

3) محور کی حدود مرتب کریں:

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

یہاں واضح رہے کہ 2 محور یہاں سے شروع ہوتے ہیں۔ min میگنیفیکیشن اور 2 محوروں کے لیے - کے ساتھ max کم کرنے کے لئے.
سیکشن میں اضافی معلومات ایکس رینج.

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) ان پٹ ڈیٹا کی تشکیل
ہر گراف میں 2 کالم ہوتے ہیں۔ لائن نمبر - محور نمبر، لوپ کو بند کرنے کے لیے پانچویں لائن۔ عجیب کالم - کوآرڈینیٹ xیہاں تک کہ - y. اس حقیقت کی وجہ سے کہ تمام پوائنٹس محوروں پر واقع ہیں، پھر جوڑی سے (x, y) ایک ہمیشہ صفر ہوتا ہے۔
اگرچہ تمام 4 محور مثبت ہیں، کچھ ڈیٹا مصنوعی طور پر منفی نصف میں منتقل کیا جاتا ہے کیونکہ یہ مرکزی محور پر واقع ہوتا ہے۔ 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 #Дубликат первой точки

نتیجہ
Gnuplot 5.0 DIY اسپائیڈر پلاٹ 4 محور پر
مکمل کوڈ

#!/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

ماخذ: www.habr.com

نیا تبصرہ شامل کریں