$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');
}
Example #3
0
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');
}
Example #4
0
 public function addIntegerColumn($table, $column)
 {
     $sql = 'ALTER TABLE ' . ticks($table) . ' ADD ' . ticks($column) . ' int(11)';
     $this->statement($sql);
 }