Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
gnuplot [2014/05/31 17:08] wombat створено |
gnuplot [2015/06/01 01:10] (поточний) wombat [Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции] |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
====== Gnuplot ====== | ====== Gnuplot ====== | ||
+ | |||
+ | Gnuplot может работать как в режиме интерактивной командной строки (когда команды вводятся в командную строку Gnuplot последовательно, один за другим), так и в неинтерактивном режиме (когда в Gnuplot передаётся сразу весь список команд, составленный заранее). Так, например, сценарий | ||
<code> | <code> | ||
- | gnuplot -e 'set terminal png; set ticslevel 2.5; set palette defined ( 0 | + | set terminal png; |
- | "black", 1 "dark-blue", 1000 "green", 2000 "yellow",3000 "red");set pm3d at bs; splot "sheet01.txt" with pm3d' | display | + | plot "data2D.dat" with lines; |
+ | </code> | ||
- | 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; 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; plot "data2D.dat" with lines;' | 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 генерирует PNG-файл с графиком, который тут же направляется в утилиту ''display'' из пакета [[imagemagick|ImageMagick]]. |
- | 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 | + | ===== Простые примеры ===== |
- | ============== Нанесение кружочков на из таблицы на карту в виде Меркаторовской проекции ============= | + | {{::2d_plot_simple.png?200 |}} |
- | /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 | + | <code> |
+ | set terminal png; | ||
+ | plot "data2D.dat" with lines; | ||
+ | </code> | ||
- | /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_plot_log_grid.png?200 |}} | ||
+ | С логарифмической шкалой по осям X и Y и координатной сеткой: | ||
+ | <code> | ||
+ | set terminal png; | ||
+ | set logscale xy; | ||
+ | plot "data2D.dat" with lines; | ||
</code> | </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 | ||
+ | |||
+ | ===== Разные примеры ===== | ||
+ | |||
+ | |||
+ | 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 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 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,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 | ||
+ | |||
+ | |||
+ | |||
+ | ==== Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции ==== | ||
+ | |||
+ | {{::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-3) with circles fill solid lc 2 title "Earthquakes-2015" | ||
+ | </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: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 | ||
===== Полезные ссылки ===== | ===== Полезные ссылки ===== |