Користувальницькькі налаштування

Налаштування сайту


gnuplot

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
gnuplot [2014/05/31 17:46]
wombat [Простые примеры] разные примеры добавлены
gnuplot [2015/06/01 01:10] (поточний)
wombat [Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции]
Рядок 1: Рядок 1:
 ====== Gnuplot ====== ====== Gnuplot ======
 +
 +Gnuplot может работать как в режиме интерактивной командной строки (когда команды вводятся в командную строку Gnuplot последовательно,​ один за другим),​ так и в неинтерактивном режиме (когда в Gnuplot передаётся сразу весь список команд,​ составленный заранее). Так, например,​ сценарий
 +
 +<​code>​
 +set terminal png;
 +plot "​data2D.dat"​ with lines;
 +</​code>​
 +
 +можно выполнить одной командой следующего вида:
 +
 +  gnuplot -e 'set terminal png; plot "​data2D.dat"​ with lines;'​ | display
 +
 +Здесь сам Gnuplot генерирует PNG-файл с графиком,​ который тут же направляется в утилиту ''​display''​ из пакета [[imagemagick|ImageMagick]].
  
 ===== Простые примеры ===== ===== Простые примеры =====
  
 +{{::​2d_plot_simple.png?​200 |}}
 <​code>​ <​code>​
-gnuplot -e 'set terminal png; plot "datafile.dat" with lines;' | display+set terminal png;  
 +plot "data2D.dat" with lines;
 </​code>​ </​code>​
  
-С логарифмической шкалой по осям X и Y: 
-  gnuplot -e 'set terminal png; set logscale xy; plot "​SOAVAR.dat"​ with lines;'​ | display 
  
-С сеткой координат:​ +----
-  gnuplot ​-e 'set terminal png; set logscale xy; set grid; plot "​SOAVAR.dat"​ with lines;'​ | display+
  
 +{{::​2d_plot_log_grid.png?​200 |}}
 +С логарифмической шкалой по осям X и Y и координатной сеткой:​
 +<​code>​
 +set terminal png;
 +set logscale xy;
 +plot "​data2D.dat"​ with lines;
 +</​code>​
 +
 +----
 +
 +  gnuplot -e 'set terminal png; set yrange [0:300]; set xrange [0:5]; set xlabel "​Energy,​ MeV"; set ylabel "​Counts";​ plot "​Lab5-spectrum.build/​out_spectrum.dat"​ using ($2):($3) with steps title "5GeV source, Water absorber"'​ | display
  
 ===== Разные примеры ===== ===== Разные примеры =====
  
-<​code>​ 
-gnuplot -e 'set terminal png; set ticslevel 2.5; set palette defined ( 0 
- "​black",​ 1 "​dark-blue",​ 1000 "​green",​ 2000 "​yellow",​3000 "​red"​);​set pm3d at bs; splot "​sheet01.txt"​ with pm3d' | display 
  
-gnuplot -e 'set terminal png crop; set title "​Sheet";​ set view 60,10; set ticslevel 2.5; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​set pm3d at bs; splot "sheet23.txt" with pm3d notitle' | display+  ​gnuplot -e 'set terminal png; set ticslevel 2.5; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​green",​ 2000 "​yellow",​3000 "​red"​);​set pm3d at bs; splot "sheet01.txt" with pm3d' | display
  
-gnuplot -e 'set terminal png crop; set title "Phase sheet 23" ​offset 0,-5; set view 60,10; set ticslevel 2.5; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​); set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set pm3d at bs; splot "​sheet23.txt"​ with pm3d notitle'​ | display+  ​gnuplot -e 'set terminal png crop; set title "Sheet"; set view 60,10; set ticslevel 2.5; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​set pm3d at bs; splot "​sheet23.txt"​ with pm3d notitle'​ | display
  
-gnuplot -e 'set terminal png crop size 600,800; set title "Phase sheet 23" offset 0,-10; set view 70,10; set ticslevel ​1; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​ set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set ztics 0,500,3500; set pm3d at bs; splot "​sheet23.txt"​ with pm3d notitle'​ | display+  ​gnuplot -e 'set terminal png crop; set title "Phase sheet 23" offset 0,-5; set view 60,10; set ticslevel ​2.5; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​ set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set pm3d at bs; splot "​sheet23.txt"​ with pm3d notitle'​ | display
  
-gnuplot -e 'set terminal png crop size 600,800; set title "Phase sheet 23" offset 0,-10; set view 70,10; set ticslevel 1; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​ set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set pm3d at bs; splot "sheet32.txt" with pm3d notitle'​ | display+  ​gnuplot -e 'set terminal png crop size 600,800; set title "Phase sheet 23" offset 0,-10; set view 70,10; set ticslevel 1; set palette defined ( 0 "​black",​ 1 "​dark-blue",​ 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​);​ set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set ztics 0,500,3500; set pm3d at bs; splot "sheet23.txt" with pm3d notitle'​ | display
  
-============== Нанесение кружочков на из таблицы на карту в виде Меркаторовской проекции ============= +  ​gnuplot -e 'set terminal png crop size 600,800; set title "Phase sheet 23" ​offset 0,-10; set view 70,10set ticslevel 1; set palette defined ( 0 "black""dark-blue", 1000 "​cyan",​ 1500 "​green",​ 2000 "​yellow",​3000 "​red"​); set colorbox vertical user origin 0.9,0.1 size 0.03,0.7; set pm3d at bs; splot "​sheet32.txt" ​with pm3d notitle' | display
-/​home/​vova/​local/​bin/​gnuplot ​-persist ​-e 'set terminal png crop size 720,360; set title "Phase sheet 23"; set xrange [-180:180]plot "test_map.txt" ​using ($1+80-360*floor(abs($1+80)/​180)):​(log(tan(pi/​4 - $2/​2))):​3 ​with circles fill solid'| display+
  
-/​home/​vova/​local/​bin/​gnuplot -persist -e 'set terminal png crop size 720,360; set title "Phase sheet 23"; set xrange [-180:180]; set ytics ("​0"​ 0, "​-30"​ log(tan(pi/​4 + (-pi/​6)/​2)),​ "​30"​ log(tan(pi/​4 + (pi/​6)/​2)),"​-60"​ log(tan(pi/​4 + (-pi/​3)/​2)),​ "​60"​ log(tan(pi/​4 + (pi/3)/2)), "​-80"​ log(tan(pi/​4 + (-pi*80/​180)/​2)),​ "​80"​ log(tan(pi/​4 + (pi*80/​180)/​2)));​ plot "​test_map.txt"​ using ($1+80-360*floor(abs($1+80)/​180)):​(log(tan(pi/​4 - $2/2))):3 with circles fill solid'​| display 
  
-/​home/​vova/​local/​bin/​gnuplot -persist -e 'set terminal ​svg; set title "​Circles on Mercator projection";​ set xrange [-180:180]; set yrange[log(tan(pi/​4 + (-pi*70/​180)/​2)):​log(tan(pi/​4 + (pi*72.5/​180)/​2))];​ set ytics ("​0"​ 0, "​-30"​ log(tan(pi/​4 + (-pi/​6)/​2)),​ "​30"​ log(tan(pi/​4 + (pi/​6)/​2)),"​-60"​ log(tan(pi/​4 + (-pi/​3)/​2)),​ "​60"​ log(tan(pi/​4 + (pi/3)/2)), "​-80"​ log(tan(pi/​4 + (-pi*80/​180)/​2)),​ "​80"​ log(tan(pi/​4 + (pi*80/​180)/​2)));​ set xtics -180,​30,​180; ​unset key;plot "test_map.txt" using ($1+80-360*floor(abs($1+80)/​180)):​(log(tan(pi/​4 + (pi*$2/​180)/​2))):​3 with circles fill solid lc 2' > test_map.svg+ 
 +==== Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции ==== 
 + 
 +{{::​2d_map_earthquakes.png?​200 |}} 
 +<​code>​ 
 +set terminal ​png; 
 +set grid; 
 +set title "​Circles on Mercator projection"; ​ 
 +set xrange [-180:​180]; ​ 
 +set yrange[log(tan(pi/​4 + (-pi*70/​180)/​2)):​log(tan(pi/​4 + (pi*72.5/​180)/​2))]; ​ 
 +set ytics ("​0"​ 0, "​-30"​ log(tan(pi/​4 + (-pi/​6)/​2)),​ "​30"​ log(tan(pi/​4 + (pi/​6)/​2)),"​-60"​ log(tan(pi/​4 + (-pi/​3)/​2)),​ "​60"​ log(tan(pi/​4 + (pi/3)/2)), "​-80"​ log(tan(pi/​4 + (-pi*80/​180)/​2)),​ "​80"​ log(tan(pi/​4 + (pi*80/​180)/​2))); ​ 
 +set xtics -180,​30,​180; ​ 
 +plot "earthquakes2015-M3.dat" using ($3+360*floor(abs($3)/​180)):​(log(tan(pi/​4 + (pi*$2/​180)/​2))):​($5-3with circles fill solid lc 2 title "​Earthquakes-2015"​
 </​code>​ </​code>​
  
 +Хотя, намного умнее делать это при помощи [[generic_mapping_tools|GMT]].
  
   gnuplot -persist -e 'set terminal png size 1024,400; set xrange [0:100]; set xtics 0,5,100; plot "​distribution_1.txt"​ with lines title "​lambda = 1","​distribution_2.txt"​ with lines title "​lambda = 2","​distribution_3.txt"​ with lines title "​lambda = 3","​distribution_4.txt"​ with lines title "​lambda = 4","​distribution_5.txt"​ with lines title "​lambda = 5","​distribution_6.txt"​ with lines title "​lambda = 6","​distribution_7.txt"​ with lines title "​lambda = 7","​distribution_8.txt"​ with lines title "​lambda = 8","​distribution_9.txt"​ with lines title "​lambda = 9","​distribution_10.txt"​ with lines title "​lambda = 10","​distribution_15.txt"​ with lines title "​lambda = 15","​distribution_20.txt"​ with lines title "​lambda = 20","​distribution_30.txt"​ with lines title "​lambda = 30","​distribution_40.txt"​ with lines title "​lambda = 40","​distribution_50.txt"​ with lines title "​lambda = 50"'​ | display   gnuplot -persist -e 'set terminal png size 1024,400; set xrange [0:100]; set xtics 0,5,100; plot "​distribution_1.txt"​ with lines title "​lambda = 1","​distribution_2.txt"​ with lines title "​lambda = 2","​distribution_3.txt"​ with lines title "​lambda = 3","​distribution_4.txt"​ with lines title "​lambda = 4","​distribution_5.txt"​ with lines title "​lambda = 5","​distribution_6.txt"​ with lines title "​lambda = 6","​distribution_7.txt"​ with lines title "​lambda = 7","​distribution_8.txt"​ with lines title "​lambda = 8","​distribution_9.txt"​ with lines title "​lambda = 9","​distribution_10.txt"​ with lines title "​lambda = 10","​distribution_15.txt"​ with lines title "​lambda = 15","​distribution_20.txt"​ with lines title "​lambda = 20","​distribution_30.txt"​ with lines title "​lambda = 30","​distribution_40.txt"​ with lines title "​lambda = 40","​distribution_50.txt"​ with lines title "​lambda = 50"'​ | display
Рядок 41: Рядок 72:
   gnuplot -persist -e 'set terminal png size 1024,400; set xrange [0:50]; set xtics ("​1"​ 1, "​2"​ 2, "​3"​ 3, "​4"​ 4, "​5"​ 5, "​6"​ 6, "​7"​ 7, "​8"​ 8, "​9"​ 9, "​10"​ 10, "​15"​ 15, "​20"​ 20, "​30"​ 30, "​40"​ 40, "​50"​ 50, "​100"​ 100); plot "​distribution_1.txt"​ with lines title "​lambda =  1","​distribution_2.txt"​ with lines title "​lambda =  2","​distribution_3.txt"​ with lines title "​lambda =  3","​distribution_4.txt"​ with lines title "​lambda =  4","​distribution_5.txt"​ with lines title "​lambda =  5","​distribution_6.txt"​ with lines title "​lambda =  6","​distribution_7.txt"​ with lines title "​lambda =  7","​distribution_8.txt"​ with lines title "​lambda =  8","​distribution_9.txt"​ with lines title "​lambda =  9","​distribution_10.txt"​ with lines title "​lambda = 10","​distribution_15.txt"​ with lines title "​lambda = 15","​distribution_20.txt"​ with lines title "​lambda = 20","​distribution_30.txt"​ with lines title "​lambda = 30"'​ | display   gnuplot -persist -e 'set terminal png size 1024,400; set xrange [0:50]; set xtics ("​1"​ 1, "​2"​ 2, "​3"​ 3, "​4"​ 4, "​5"​ 5, "​6"​ 6, "​7"​ 7, "​8"​ 8, "​9"​ 9, "​10"​ 10, "​15"​ 15, "​20"​ 20, "​30"​ 30, "​40"​ 40, "​50"​ 50, "​100"​ 100); plot "​distribution_1.txt"​ with lines title "​lambda =  1","​distribution_2.txt"​ with lines title "​lambda =  2","​distribution_3.txt"​ with lines title "​lambda =  3","​distribution_4.txt"​ with lines title "​lambda =  4","​distribution_5.txt"​ with lines title "​lambda =  5","​distribution_6.txt"​ with lines title "​lambda =  6","​distribution_7.txt"​ with lines title "​lambda =  7","​distribution_8.txt"​ with lines title "​lambda =  8","​distribution_9.txt"​ with lines title "​lambda =  9","​distribution_10.txt"​ with lines title "​lambda = 10","​distribution_15.txt"​ with lines title "​lambda = 15","​distribution_20.txt"​ with lines title "​lambda = 20","​distribution_30.txt"​ with lines title "​lambda = 30"'​ | display
  
 +
 +  ​
 +==== Поверхности ====
 +
 +=== Из нерегулярной сетки точек ===
 +
 +http://​gnuplot.info/​demo/​dgrid3d.html
  
 ===== Полезные ссылки ===== ===== Полезные ссылки =====
gnuplot.1401547612.txt.bz2 · В останнє змінено: 2014/05/31 17:46 by wombat