Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pchart - kilka wykresów XY
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Hejka, używam pChart w wersji 1 i robię wykresy XY.
Dla jedego wykresu nie ma problemu:
  1. $DataSet->AddPoint(array(2,4,5,1),"Serie2");
  2. $DataSet->AddPoint(array(1,2,3,6),"Serie3");
  3.  
  4. $DataSet->AddSerie("Serie2");
  5. $DataSet->AddSerie("Serie3");
  6.  
  7. // Initialise the graph
  8. $Test = new pChart(700,290);
  9. //........
  10. $Test->drawXYScale($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","Serie3",213,217,221);
  11. $Test->drawGrid(4,TRUE,230,230,230,50);
  12. //....
  13. $Test->drawXYGraph($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","Serie3",0);
  14. $Test->drawLegend(175,35,$DataSet->GetDataDescription(),255,255,255);
  15. //....

Problem pojawia się gdy chcę dodać kolejne linie na tym samym wykresie

  1. $DataSet->AddPoint(array(2,4,5,1),"Serie2");
  2. $DataSet->AddPoint(array(1,2,3,6),"Serie3");
  3. $DataSet->AddPoint(array(1,2,3,40),"Serie4");
  4. $DataSet->AddPoint(array(1,2,4,50),"Serie5");
  5.  
  6. $DataSet->AddSerie("Serie2");
  7. $DataSet->AddSerie("Serie3");
  8. $DataSet->AddSerie("Serie4");
  9. $DataSet->AddSerie("Serie5");
  10.  
  11. $Test = new pChart(700,290);
  12. //!!!!PROBLEM
  13. $Test->drawXYScale($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","Serie3",213,217,221);
  14. $Test->drawGrid(4,TRUE,230,230,230,50);
  15. //!!!!PROBLEM
  16. $Test->drawXYGraph($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","Serie3",0);
  17. $Test->drawXYGraph($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie4","Serie5",0);
  18.  
  19. $Test->drawLegend(175,35,$DataSet->GetDataDescription(),255,255,255);


Pierwszy problem:
$Test->drawXYScale($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","Serie3",213,217,221);
Rysując skalę podaje się tylko serię dla pierwszej linii. Nie można w skali uwzględnić więcej niż jednej linii.

Drugi problem
$Test->drawXYGraph($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie4","Serie5",0);
To mi rysuje drugą linię, ale gdy jest poza skalą pierwszej linii to oczywiście będzie nie widoczna.
Dodatkowo rysuje mi w tym samym kolorze co pierwszą linię. Mogę od biedy ostatni parametr dać 1 - wówczas zmieni kolor, ale tu wchodzimy na teren trzeciego problemu

Trzeci problem
NIestety legenda nie uwzględnia linii jako całości. Linia składa się z dwóch serii. Dla jednej więc linii, pojawiają się dwa pisy w legendzie. Dla dwóch linii pojawiają się 4 wpisy w legedzie i oczywiście w żaden sposób nie powiązane z kolorami linii.

Jakieś rozwiązanie? Da się tu narysować więcej niż jedną linię XY?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


  1. $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,90,2);

Może o to chodzi?
Chodzi o to, aby na jednym wykresie umieścić 3 serie danych (3 różne kolory, 3 pozycje w legendzie)?

Ten post edytował markonix 25.07.2011, 13:58:29
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak, ale chodzi o wykresy typu XY.

drawScale stosuje się dla innych wykresów.

Cytat
Chodzi o to, aby na jednym wykresie umieścić 3 serie danych (3 różne kolory, 3 pozycje w legendzie)?

Nie do końca. Na jedną linie XY przypadają dwie serie danych. Jedna na osX a druga na osY.
Dla 3 linii potrzebne więc będzie 6 serii danych, ale 3 rożne kolory, 3 pozycje w legendzie.
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:53