Шаблон:Gnuplot
{{Gnuplot}} — шаблон, позволяющий внедрять в страницы графики функций, отрисованные программой gnuplot.
График описывается особым языком.
Программа отрисовки графиков выполняется на стороне сервера. Таким образом, отображение визуализации не зависит от наличия JavaScript в браузере и даже от наличия самого браузера.
ПараметрыПравить
- или
script
— описание визуализации. Все|
должны быть заменены на{{!}}
,}}
на} }
,=
на{{=}}
(вместо последнего можно использовать именованный параметрscript
), - или
ширина
(необязательный, по умолчанию, 600) — ширина графика, - или
высота
(необязательный, по умолчанию, 400) — высота графика, - или
размер
(необязательный, по умолчанию, 10) — размер шрифта, - или
название
(необязательный) — название графика, - или
наконечник
(необязательный, по умолчанию,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|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) }} |
|
Требуемые настройки 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'
];