Curved lines and shifted marker positions

The code below is the source for this graph.

<?php
// Curved lines and shifted marker positions
require_once 'SVGGraph/autoloader.php';

$options = [
  'back_stroke_width' => 0,
  'back_shadow' => 3,
  'back_colour' => 'white',
  'auto_fit' => true,
  'structure' => ['key' => 0, 'value' => [ 1, 2, 3, 4, 5, 6, 7, 8 ] ],
  'line_dataset' => [4, 5, 6, 7],
  'line_curve' => 1,
  'line_bar' => [null, null, null, null, 0, 1, null, 3],
  'marker_type' => [null, null, null, null, 'square', 'square', 'circle', 'square'],
  'marker_size' => 6,
  'marker_stroke_colour' => 'fillColour/brightness(0.5)',
  'show_shadow' => true,
  'shadow_opacity' => 0.3,
  'shadow_blur' => 2,
];

$values = [
  ['Group 0', 103, 120, 105, 160, 190, 200, 180, 195, ],
  ['Group 1', 110, 101, 130, 130, 180, 110, 190, 170, ],
  ['Group 2', 120, 110, 120, 100, 30, 160, 130, 130, ],
  ['Group 3', 130, 91, 120, 100, 140, 120, 165, 185, ],
];

$g = new Goat1000\SVGGraph\SVGGraph(600, 200, $options);
$g->Values($values);
$g->colours(['red', 'blue', 'darkred', 'darkblue']);
$g->render('BarAndLineGraph');

Please note: the source code above comes from a script used to generate one of the example graphs on the site. This is simply a wrapper page to apply highlighting and make the source code easier to read, so there is no content here to describe what the source code is doing.