View source
<?php
namespace Drupal\flot_examples\Controller;
use Drupal\Core\Controller\ControllerBase;
class SeriesErrorbars extends ControllerBase {
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 = [
'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",
],
[
'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;
}
}