You are here

SeriesErrorbars.php in Flot 8

File

flot_examples/src/Controller/SeriesErrorbars.php
View source
<?php

namespace Drupal\flot_examples\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Display a graph demonstating the errorbar plugin.
 */
class SeriesErrorbars extends ControllerBase {

  /**
   * Zooming.
   */
  public function content() {
    $data1 = [
      [
        1,
        1,
        0.5,
        0.1,
        0.3,
      ],
      [
        2,
        2,
        0.3,
        0.5,
        0.2,
      ],
      [
        3,
        3,
        0.9,
        0.5,
        0.2,
      ],
      [
        1.5,
        -0.05,
        0.5,
        0.1,
        0.3,
      ],
      [
        3.15,
        1.0,
        0.5,
        0.1,
        0.3,
      ],
      [
        2.5,
        -1.0,
        0.5,
        0.1,
        0.3,
      ],
    ];
    $data1_points = [
      'show' => TRUE,
      'radius' => 5,
      'fillColor' => "blue",
      'errorbars' => "xy",
      'xerr' => [
        'show' => TRUE,
        'asymmetric' => TRUE,
        'upperCap' => "-",
        'lowerCap' => "-",
      ],
      'yerr' => [
        'show' => TRUE,
        'color' => "red",
        'upperCap' => "-",
      ],
    ];
    $data2 = [
      [
        0.7,
        3,
        0.2,
        0.4,
      ],
      [
        1.5,
        2.2,
        0.3,
        0.4,
      ],
      [
        2.3,
        1,
        0.5,
        0.2,
      ],
    ];
    $data2_points = [
      'show' => TRUE,
      'radius' => 5,
      'errorbars' => "y",
      'yerr' => [
        'show' => TRUE,
        'asymmetric' => TRUE,
        'upperCap' => 'drawArrow',
        'lowerCap' => 'drawSemiCircle',
      ],
    ];
    $data3 = [
      [
        1,
        2,
        0.4,
      ],
      [
        2,
        0.5,
        0.3,
      ],
      [
        2.7,
        2,
        0.5,
      ],
    ];
    $data3_points = [
      // Do not show points.
      'radius' => 0,
      'errorbars' => "y",
      'yerr' => [
        'show' => TRUE,
        'upperCap' => "-",
        'lowerCap' => "-",
        'radius' => 5,
      ],
    ];
    $data4 = [
      [
        1.3,
        1,
      ],
      [
        1.75,
        2.5,
      ],
      [
        2.5,
        0.5,
      ],
    ];
    $data4_errors = [
      0.1,
      0.4,
      0.2,
    ];
    for ($i = 0; $i < 3; $i++) {
      $temp = $data4_errors[$i];
      $data4_errors[$i] = $data4[$i];
      $data4_errors[$i][2] = $temp;
    }
    $data = [
      [
        'color' => "blue",
        'points' => $data1_points,
        'data' => $data1,
        'label' => "data1",
      ],
      [
        'color' => "red",
        'points' => $data2_points,
        'data' => $data2,
        'label' => "data2",
      ],
      [
        'color' => "green",
        'lines' => [
          'show' => TRUE,
        ],
        'points' => $data3_points,
        'data' => $data3,
        'label' => "data3",
      ],
      // Bars with errors.
      [
        'color' => "orange",
        'bars' => [
          'show' => TRUE,
          'align' => "center",
          'barWidth' => 0.25,
        ],
        'data' => $data4,
        'label' => "data4",
      ],
      [
        'color' => "orange",
        'points' => $data3_points,
        'data' => $data4_errors,
      ],
    ];
    $options = [
      'legend' => [
        'position' => "sw",
        'show' => TRUE,
      ],
      'series' => [
        'lines' => [
          'show' => FALSE,
        ],
      ],
      'xaxis' => [
        'min' => 0.6,
        'max' => 3.1,
      ],
      'yaxis' => [
        'min' => 0,
        'max' => 3.5,
      ],
      'zoom' => [
        'interactive' => TRUE,
      ],
      'pan' => [
        'interactive' => TRUE,
      ],
    ];
    $text = [];
    $text[] = $this
      ->t('With the errorbars plugin you can plot error bars to show standard deviation and other useful statistical properties.');
    $output[] = [
      '#type' => 'flot',
      '#theme' => 'flot_examples',
      '#data' => $data,
      '#options' => $options,
      '#attached' => [
        'library' => [
          'flot_examples/series_errorbars',
        ],
      ],
      '#text' => $text,
    ];
    return $output;
  }

}

Classes

Namesort descending Description
SeriesErrorbars Display a graph demonstating the errorbar plugin.