| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія |
| gnuplot [2015/03/17 21:05] – surface plot from scattered data wombat | gnuplot [2015/05/31 22:10] (поточний) – [Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции] wombat |
|---|
| ====== 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 | 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 |
| ==== Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции ==== | ==== Нанесение кружочков из таблицы на карту в виде Меркаторовской проекции ==== |
| |
| /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 | {{::2d_map_earthquakes.png?200 |}} |
| | <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 | set terminal png; |
| | set grid; |
| /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 | 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: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 |