Шаблон:Gnuplot

{{Gnuplot}} — шаблон, позволяющий внедрять в страницы графики функций, отрисованные программой gnuplot.

График описывается особым языком.

Программа отрисовки графиков выполняется на стороне сервера. Таким образом, отображение визуализации не зависит от наличия JavaScript в браузере и даже от наличия самого браузера.

ПараметрыПравить

  1. или script — описание визуализации. Все | должны быть заменены на {{!}}, }} на } }, = на {{=}} (вместо последнего можно использовать именованный параметр script),
  2. или ширина (необязательный, по умолчанию, 600) — ширина графика,
  3. или высота (необязательный, по умолчанию, 400) — высота графика,
  4. или размер (необязательный, по умолчанию, 10) — размер шрифта,
  5. или название (необязательный) — название графика,
  6. или наконечник (необязательный, по умолчанию, butt) — форма наконечников осей. Возможные значения: rounded, butt, square.

ПримерыПравить

Викитекст Вывод
{{gnuplot|script=set dummy u, v
set key bmargin center horizontal Right noreverse enhanced autotitle nobox
set parametric
set view 45, 50, 1, 1
set isosamples 50, 10
set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover
set style data lines
set ztics  norangelimit -1.00000,0.25,1.00000
set title "Parametric Sphere" 
set urange [ -1.57080 : 1.57080 ] noreverse nowriteback
set vrange [ 0.00000 : 6.28319 ] noreverse nowriteback
set xrange [ * : * ] noreverse writeback
set x2range [ * : * ] noreverse writeback
set yrange [ * : * ] noreverse writeback
set y2range [ * : * ] noreverse writeback
set zrange [ * : * ] noreverse writeback
set cbrange [ * : * ] noreverse writeback
set rrange [ * : * ] noreverse writeback
set colorbox vertical origin screen 0.9, 0.2 size screen 0.05, 0.6 front  noinvert bdefault
VoxelDistance = 9.00500479207635e-308
#NO_ANIMATION = 1
splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
}}

gnuplot Produced by GNUPLOT 5.2 patchlevel 8 Parametric Sphere gnuplot_plot_1 gnuplot_plot_2 cos(u)*cos(v),cos(u)*sin(v),sin(u) -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1


{{gnuplot|script=set border 4095 front lt black linewidth 1.000 dashtype solid
set view 130, 10, 1, 1
set samples 50, 50
set isosamples 50, 50
unset surface 
set title "set pm3d scansbackward: correctly looking surface" 
set xrange [ * : * ] noreverse writeback
set x2range [ * : * ] noreverse writeback
set yrange [ * : * ] noreverse writeback
set y2range [ * : * ] noreverse writeback
set zrange [ * : * ] noreverse writeback
set cbrange [ * : * ] noreverse writeback
set rrange [ * : * ] noreverse writeback
set pm3d implicit at s
set pm3d scansbackward
set colorbox vertical origin screen 0.9, 0.2 size screen 0.05, 0.6 front  noinvert bdefault
VoxelDistance = 9.00500479207635e-308
## Last datafile plotted: "$PALETTE"
splot sin(sqrt(x**2+y**2))/sqrt(x**2+y**2)
}}

gnuplot Produced by GNUPLOT 5.2 patchlevel 8 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 set pm3d scansbackward: correctly looking surface gnuplot_plot_1 sin(sqrt(x**2+y**2))/sqrt(x**2+y**2) -10 -5 0 5 10 -10 -5 0 5 10 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Требуемые настройки External DataПравить

// sudo apt install gnuplot
// cd /var/www/js && mkdir gnuplot && cd gnuplot && wget http://gnuplot.sourceforge.net/demo_svg_5.4/gnuplot_svg.js
$wgExternalDataSources['gnuplot'] = [
	'name'			=> 'gnuplot',
	'program url'		=> 'http://www.gnuplot.info/',
	'version command'	=> 'gnuplot -V',
	'command'		=> [ 'gnuplot', '-e', 'set terminal svg size $width$,$height$ dynamic enhanced '
	. 'font \'arial,$size$\' mousing jsdir \'/js/gnuplot\' name \'$name$\' $heads$ dashlength 1.0; ', '-' ],
	'params'		=> [ 'width' => 600, 'height' => 400, 'size' => 10, 'name' => 'gnuplot', 'heads' => 'butt' ],
	'param filters'		=> [ 'width' => '/^\d+$/', 'height' => '/^\d+$/', 'size' => '/^\d+$/', 'heads' => '/^(rounded|butt|square)$/' ],
	'input'			=> 'script',
	'postprocess'		=> 'EDConnectorExe::innerXML',
	'tag'			=>'gnuplot'
];

Системные требованияПравить

СсылкиПравить