Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [pear] graph -> zmiana położenia osi, ustalenie ich długości i opisy pointów
Forum PHP.pl > Forum > PHP
macek
nie jestem pewiem czy temat nie powinien się znaleźć w otowych skryptach, ale trzeba było gdzieś go umieścić winksmiley.jpg

bawię się pear'owym graphem i mam z nim dwa problemy winksmiley.jpg byłem zmuszony na poionowej osi użyć setInverted(true) , na góze muszę mieć wartości najniższe, ale teraz jak przenieść oś poziomą na dół ?
Drugo mój problem to taki: na poziomej osi są dni miesiąca. jeśli dane na podstawie których jest rysowany wykres są np tylko od 5 danego miesiąca, to pozioma oś wykresu zaczyn a się właśnie od 5.. Jest jakaś możliwość żeby poziomą oś ustalić na sztywno ?
oto kod:
  1. <?php
  2. $Canvas =& Image_Canvas::factory('png', array('width' => 600, 'height' => 400, 'antialias' => true));
  3.  
  4. $Graph =& Image_Graph::factory('graph', $Canvas);
  5. $Font =& $Graph->addNew('font', 'Verdana');
  6. $Font->setSize(9);
  7.  
  8. $Graph->setFont($Font);
  9.  
  10. $Plotarea =& $Graph->addNew('plotarea');
  11.  
  12. $Datasets[0] =& Image_Graph::factory('dataset');
  13.  
  14. $Plotarea->addNew('line_grid', false, IMAGE_GRAPH_AXIS_X);
  15. $Plotarea->addNew('line_grid', false, IMAGE_GRAPH_AXIS_Y); 
  16. $Fill =& Image_Graph::factory('Image_Graph_Fill_Image', 'gfx/google.jpg');
  17. $Plotarea->setFillStyle($Fill); 
  18.  
  19. $q = "SELECT pozycja, dzien FROM statArchiwumPoz WHERE idStrona = '". $idStrona ."' AND idSlowo = '". $idSlowo ."' AND miesiac = '". $miesTeraz ."' AND rok = '". $rokTeraz ."' ORDER BY dzien ASC";
  20. $db = sql( $q );
  21. while ( $p = mysql_fetch_array( $db ) ) {
  22. $pozycja = $p[0];
  23. $dzien = $p[1];
  24. $Datasets[0]->addPoint( $dzien, $pozycja );
  25. }
  26.  
  27. $Plot1 =& $Plotarea->addNew('line', array(&$Datasets[0]));
  28. $Plot1->setMarker(Image_Graph::factory('Image_Graph_Marker_Icon', 'gfx/mark.png')); 
  29. $Plot1->setLineColor('red');
  30.  
  31. $AxisY =& $Plotarea->getAxis('y');
  32. $AxisX =& $Plotarea->getAxis('x');
  33. $AxisX->forceMinimum(1);
  34. $AxisX->forceMaximum(50);
  35. $AxisY->forceMinimum(1);
  36. $AxisY->forceMaximum(50);
  37. $AxisY->setInverted(true);
  38.  
  39. $Graph->done();
  40. ?>


--- edit ---
ahh, jest to zwykła krzywa z punktami załamania któe podałem. wie ktoś może jak jeszcze nad tymi punktami wypisać konkreną wartość na których są 'zawieszone' ?
marast78
czy na pewno ta biblioteka jest taka dobra?? a może użyć GRAPHPite o wiele wydajniejsze i ciekawsze rozwiązanie..
macek
byćmoże warto, nie wnikam, ale muszę zorbić to na image_graphie winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.