Blame view

site/jpgraph/Examples/matrix_introex.php 2.59 KB
8ec98c9f   Guillaume   MAJ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
  <?php
  require_once ('jpgraph/jpgraph.php');
  require_once ('jpgraph/jpgraph_matrix.php');
  require_once ('jpgraph/jpgraph_iconplot.php');
  
  $data = array(
      array(0,1,2,3,4,5,6,7,8,9,10),
      array(10,9,8,7,6,5,4,3,2,1,0),
      array(0,1,2,3,4,5,6,7,8,9,10),
      array(10,9,8,17,6,5,4,3,2,1,0),
      array(0,1,2,3,4,4,9,7,8,9,10),
      array(8,1,2,3,4,8,3,7,8,9,10),
      array(10,3,5,7,6,5,4,3,12,1,0),
      array(10,9,8,7,6,5,4,3,2,1,0),
  );
  // Interpolate the data a factor of 4 to get some mroe 
  // data points
  doMeshInterpolate($data,4);
  
  // Setup a timer
  $timer = new JpgTimer();
  $timer->Push();
  
  //--------------------------------------------------------------
  // Setup a basic matrix graph
  //--------------------------------------------------------------
  $width = 740; $height = 500;
  $graph = new MatrixGraph($width,$height);
  $graph->SetMargin(1,2,70,1);
  $graph->SetColor('white');
  $graph->SetMarginColor('#fafafa');
  $graph->title->Set('Intro matrix graph');
  $graph->title->SetFont(FF_ARIAL,FS_BOLD,14);
  
  // Setup the background image
  $graph->SetBackgroundImage('fireplace.jpg',BGIMG_FILLPLOT);
  $graph->SetBackgroundImageMix(50);
  
  // Setup the timer in the right footer
  $graph->footer->SetTimer($timer);
  $graph->footer->right->SetColor('white');
  
  //--------------------------------------------------------------
  // Create the 2 matrix plots
  //--------------------------------------------------------------
  $mp = array(); $n = 2;
  for($i=0; $i < $n; ++$i){
      $mp[$i] = new MatrixPlot($data);
      $mp[$i]->colormap->SetMap($i);
      $mp[$i]->SetSize(300,250);    
      $mp[$i]->SetLegendLayout(1);
      $mp[$i]->SetAlpha(0.2);
      
      // Make the legend slightly longer than default
      $mp[$i]->legend->SetSize(20,280);
  }
  $mp[1]->colormap->SetMap(3);
  
  $hor1 = new LayoutHor(array($mp[0],$mp[1]));
  $hor1->SetCenterPos(0.5,0.5);
  
  $graph->Add($hor1);
  
  //--------------------------------------------------------------
  // Add texts to the graph
  //--------------------------------------------------------------
  $txts = array( 
      array('Temperature gradient',$width/2,80),
      array('Heat color map',200,110),
      array('High contrast map',560,110));
  
  $n=count($txts);
  $t=array();
  for($i=0; $i < $n; ++$i){
      $t[$i] = new Text($txts[$i][0],$txts[$i][1],$txts[$i][2]);
      $t[$i]->SetFont(FF_ARIAL,FS_BOLD,14);
      $t[$i]->SetColor('white');
      $t[$i]->SetAlign('center','top');
  }
  $graph->Add($t);
  
  //--------------------------------------------------------------
  // Add Jpgraph logo to top left corner
  //--------------------------------------------------------------
  $icon = new IconPlot('jpglogo.jpg',2,2,0.9,50);
  $graph->Add($icon);
  
  $graph->Stroke();
  ?>