کسی مضمون کے لیے ڈیٹا ویژولائزیشن پر کام کرتے وقت، تمام پر مثبت لیبلز کے ساتھ 4 محوروں کا ہونا ضروری ہو گیا۔
جیسا کہ مضمون میں دوسرے گراف کے ساتھ، میں نے استعمال کرنے کا فیصلہ کیا۔ gnuplot. سب سے پہلے، میں نے سرکاری ویب سائٹ کو دیکھا، جہاں بہت سی مثالیں موجود ہیں۔ جب مجھے صحیح مل گیا تو میں بہت خوش ہوا۔
میں نے جلدی سے کوڈ کاپی کیا اور اسے چلایا۔ مجھے ایک غلطی ہو گئی ہے۔ میں اس کا پتہ لگا رہا ہوں۔ پتہ چلا کہ میرے پاس ایک پرانا gnuplot ہے (Version 5.0 patchlevel 3 last modified 2016-02-21
اور وہ ایسا نہیں کر سکتا۔
gnuplot کی لچک کے بارے میں جانتے ہوئے، میں نے ورلڈ وائڈ ویب کو اسکور کرنا شروع کیا اور اسٹیک اوور فلو (
مزید، کمانڈز کے ساتھ میری ہیرا پھیری کے نتیجے میں درج ذیل ہیں:
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
، تاکہ صفر اصل میں مداخلت نہ کریں۔
کوآرڈینیٹ سینٹر میں صفر کو ملانا۔
تمام وقفے *tics
کے طور پر ترتیب دیا 0,.5,max
بغیر offset 0.35
لیے xtics
ایڈجسٹمنٹ scale 0.5,0.25 mirror
محور پر نشانات جوڑتا ہے۔ اگر آپ نمبروں کے ساتھ کھیلتے ہیں تو ان کا سائز بدل جائے گا۔
میں متغیرات بھی داخل کرتا ہوں۔ max, min
جس کی مدد سے میں گراف محور کی حدود کو کنٹرول کرتا ہوں۔
ٹک سیٹ کرنے کے بارے میں اضافی معلومات سیکشن میں موجود دستاویزات میں مل سکتی ہیں۔
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 #Дубликат первой точки
نتیجہ
مکمل کوڈ
#!/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