$skip = $n && $n < count($lines) - 1 && $n % $drop != 0; if ($skip) { continue; } $index = sprintf("%06d", $k); $k++; $mid = 0; $min_x = $mid + -1.5 * $max_ratio / (1 + $line[3]); $max_x = $mid + +1.5 * $max_ratio / (1 + $line[3]); $min_y = -0.5 * $max_ratio / (1 + $line[3]); $max_y = 0.5 * $max_ratio / (1 + $line[3]); //$code = "set term svg enhanced dynamic dashed font 'DejaVuSerif,14'; set out 'files/$index.svg'; \n"; $code = "set term pngcairo enhanced font 'DejaVuSerif,14' size 640,1024; set out 'files/{$index}.png';\n"; $xtics = 0.5 * $max_ratio / 6; $xtics = round($xtics * 10) / 10; $code .= "set size 2,1\nset multiplot layout 4, 1\n"; $code .= "\nset title sprintf(\"t=%.2f, z=%.2f\",{$line[0]}-{$max_time},{$line[3]})\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.7\nset tmargin at screen 0.85\n\nunset key\nset xrange [ {$min_x}:{$max_x} ]\n set yrange [ {$min_y} : {$max_y} ]\nset grid xtics ytics\nset xtics {$xtics}\nset xtics format ' '\nset ytics format ' '\nset ytics {$xtics}\n\nset object 1 circle at first -1,0 size 0.05\nset object 2 circle at first 1,0 size 0.05\n\nplot 'out_{$type}.res' u (\$2/{$x0}):(\$1 <= {$line[0]}+0.01 ? 0 : NaN) w l lt 1 lw 1.5\n"; $mid = $line[1] / $x0; $min_x = $mid + -1.5 * $max_ratio / (1 + $line[3]); $max_x = $mid + +1.5 * $max_ratio / (1 + $line[3]); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.5\nset tmargin at screen 0.65\n \nunset key\nunset title\nset xrange [ {$min_x}:{$max_x} ]\n set yrange [ {$min_y} : {$max_y} ]\nset grid xtics ytics\nset xtics {$xtics}\nset xtics format ' '\nset ytics format ' '\nset ytics {$xtics}\n\nset object 1 circle at first -1,0 size 0.05\nset object 2 circle at first 1,0 size 0.05\n\nplot 'out_{$type}.res' u (\$2/{$x0}):(\$1 <= {$line[0]}+0.01 ? 0 : NaN) w l lt 1 lw 1.5\n"; $xtics = ticks($t0 - $max_time, 0, 5, 0.25); $ytics = ticks(0, $max_r, 5, $max_r < 5 ? 1 : 25); $code .= "\n set lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.3\nset tmargin at screen 0.45\n\n\nf(x) = x\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format ' '\n set ytics format '%.1f'\n unset object 1\n unset object 2\n set ytics 0,{$ytics},{$max_r}\n set xtics {$t0}-{$max_time},{$xtics},0\n set xrange [ {$t0}-{$max_time}:0 ]\n set yrange [ 0:{$max_r} ]\nplot 'out_{$type}.res' u (\$1-{$max_time}):(\$1 <= {$line[0]}+0.01 ? (\$3) : NaN) w l, x+({$max_time}-{$t0})\n"; $xtics = ticks($t0 - $max_time, 0, 5, 0.25); $ytics = ticks(0, $max_v, 5, 1); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.1\nset tmargin at screen 0.25\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format '%.1f'\n set ytics format '%.1f'\n unset object 1\n unset object 2\n set ytics 0,{$ytics},{$max_dl}\n set xtics {$t0}-{$max_time},{$xtics},0\n set xrange [ {$t0}-{$max_time}:0 ]\n set yrange [ 0:{$max_v} ]\nplot 'out_{$type}.res' u (\$1-{$max_time}):( (\$1 <= {$line[0]}+0.01 && \$5 > 0.01) ? (\$5) : NaN) w l, 1\n"; $code .= "\nunset multiplot"; file_put_contents('tmp', $code); exec('gnuplot tmp'); }
$max_x = $data[2][$n]; } $k = 0; foreach ($lines as $n => $line) { $skip = $n && $n < count($lines) - 1 && $n % $drop != 0; if ($skip) { continue; } $index = sprintf("%06d", $k); $k++; $min_x = -1.5 * $max_ratio / (1 + $line[3]); $max_x = 1.5 * $max_ratio / (1 + $line[3]); $min_y = -1.5 * $max_ratio / (1 + $line[3]); $max_y = 1.5 * $max_ratio / (1 + $line[3]); //$code = "set term svg enhanced dynamic dashed font 'DejaVuSerif,14'; set out 'files/$index.svg'; \n"; $code = "set term pngcairo enhanced font 'DejaVuSerif,14' size 640,1280; set out 'files/{$index}.png';\n"; $xtics = 0.5 * $max_ratio / 6; $xtics = round($xtics * 10) / 10; $code .= "set size 2,1\nset multiplot layout 3, 1\n"; $rad = $line[1] / $x0; $code .= "\nset title sprintf(\"t=%.2f, z=%.2f\",{$line[0]}-{$max_time},{$line[3]})\nset lmargin at screen 0.15\nset rmargin at screen 0.85\nset bmargin at screen 0.50\nset tmargin at screen 0.85\n\nunset key\nset xrange [ {$min_x}:{$max_x} ]\n set yrange [ {$min_y} : {$max_y} ]\nset grid xtics ytics\nset xtics {$xtics}\nset xtics format ' '\nset ytics format ' '\nset ytics {$xtics}\n\nset samples 1000\nset object 1 circle at first -1,0 size 0.05\nset object 2 circle at first 1,0 size 0.05\nset obj 10 circle at first -1, 0 size first (1+{$rad}) fc rgb 'red'\n\nplot 'out_{$type}.res' u (\$2/{$x0}):(\$1 <= {$line[0]}+0.01 ? 0 : NaN) w l lt 1 lw 1.5\n"; $xtics = ticks(0, $max_time, 5, 0.25); $ytics = ticks(0, 1, 5, 0.5); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.3\nset tmargin at screen 0.4\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format '%.1f'\n set ytics format '%.1f'\n unset object 1\n unset object 2\n unset object 10\n set ytics -1,{$ytics},1\n set xtics {$t0}-{$max_time},{$xtics},0\n set xrange [ {$t0}-{$max_time}:0 ]\n set yrange [ -1:1 ]\nplot 'out_{$type}.res' u (\$1-{$max_time}):(\$1 <= {$line[0]}+0.01 ? (\$2/{$x0}) : NaN) w l \n"; $xtics = ticks(0, $max_time, 5, 0.25); $ytics = ticks(0, $max_dl, 6, 0.5); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.1\nset tmargin at screen 0.2\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format '%.1f'\n set ytics format '%.1f'\n unset object 1\n unset object 2\n set ytics 0,{$ytics},{$max_dl}\n set xtics {$t0}-{$max_time},{$xtics},0\n set xrange [ {$t0}-{$max_time}:0 ]\n set yrange [ 0:{$max_dl} ]\nplot 'out_{$type}.res' u (\$1-{$max_time}):(\$1 <= {$line[0]}+0.01 ? ((1+\$4)*\$3) : NaN) w l t 'd_L(z)'\n"; $code .= "\nunset multiplot"; file_put_contents('tmp', $code); exec('gnuplot tmp'); }
foreach ($data[0] as $n => $line) { $lines[] = array($data[1][$n], $data[2][$n], $data[3][$n], $data[4][$n]); $max_ratio = 1 + $data[4][$n]; $max_time = $data[1][$n]; $max_dl = (1 + $data[4][$n]) * $data[3][$n]; $max_x = $data[2][$n]; } foreach ($lines as $n => $line) { /*$skip = $n && $n < count($lines)-1 && $n%2; if($skip) continue;*/ $index = sprintf("%04d", $n); $min_x = -1.5 * $max_ratio / (1 + $line[3]); $max_x = 1.5 * $max_ratio / (1 + $line[3]); $min_y = -1.5 * $max_ratio / (1 + $line[3]); $max_y = 1.5 * $max_ratio / (1 + $line[3]); //$code = "set term svg enhanced dynamic dashed font 'DejaVuSerif,14'; set out 'files/$index.svg'; \n"; $code = "set term pngcairo enhanced font 'DejaVuSerif,14' size 640,1280; set out 'files/{$index}.png';\n"; $xtics = 0.5 * $max_ratio / 6; $xtics = round($xtics * 10) / 10; $code .= "set size 2,1\nset multiplot layout 3, 1\n"; $code .= "\nset title sprintf(\"t=%.2f, z=%.2f\",{$line[0]},{$line[3]})\nset lmargin at screen 0.15\nset rmargin at screen 0.85\nset bmargin at screen 0.50\nset tmargin at screen 0.85\n\nunset key\nset xrange [ {$min_x}:{$max_x} ]\n set yrange [ {$min_y} : {$max_y} ]\nset grid xtics ytics\nset xtics {$xtics}\nset xtics format ' '\nset ytics format ' '\nset ytics {$xtics}\n\nset samples 1000\nset object 1 circle at first -1,0 size 0.05\nset object 2 circle at first 1,0 size 0.05\nset obj 10 circle at first -1, 0 size first (1+{$line[1]}) fc rgb 'red'\n\nplot 'out_{$type}.res' u (\$2):(\$1 <= {$line[0]}+0.01 ? 0 : NaN) w l lt 1 lw 1.5\n"; $xtics = ticks(0, $max_time, 5, 0.25); $ytics = ticks(0, 1, 5, 0.5); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.3\nset tmargin at screen 0.4\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format '%.1f'\n set ytics format '%.1f'\n unset object 1\n unset object 2\n unset object 10\n set ytics -1,{$ytics},1\n set xtics 0,{$xtics},{$max_time}\n set xrange [ 0:{$max_time} ]\n set yrange [ -1:1 ]\nplot 'out_{$type}.res' u 1:(\$1 <= {$line[0]}+0.01 ? (\$2) : NaN) w l \n"; $xtics = ticks(0, $max_time, 5, 0.25); $ytics = ticks(0, $max_dl, 5, 25); $code .= "\nset lmargin at screen 0.1\nset rmargin at screen 0.9\nset bmargin at screen 0.1\nset tmargin at screen 0.2\n\n unset title\n unset key\n unset grid\n unset xtics\n unset ytics\n set xtics format '%.1f'\n set ytics format '%.1f'\n unset object 1\n unset object 2\n set ytics 0,{$ytics},{$max_dl}\n set xtics 0,{$xtics},{$max_time}\n set xrange [ 0:{$max_time} ]\n set yrange [ 0:{$max_dl} ]\nplot 'out_{$type}.res' u 1:(\$1 <= {$line[0]}+0.01 ? ((1+\$4)*\$3) : NaN) w l t 'd_L(z)'\n"; $code .= "\nunset multiplot"; file_put_contents('tmp', $code); exec('gnuplot tmp'); }
public function addIntegerColumn($table, $column) { $sql = 'ALTER TABLE ' . ticks($table) . ' ADD ' . ticks($column) . ' int(11)'; $this->statement($sql); }