Home > Inne, PHP > Wykresy w php

Wykresy w php

styczeń 31st, 2009

Ostatnio potrzebowałem wygenerować kilka wykresów w php. Nigdy wcześniej nie było takiej potrzeby, więc nie miałem dobrej wypróbowanej biblioteki, która by ułatwiła mi to zadanie.

Zacząłem więc przeglądać różne rozwiązania, trochę poszperałem w google no i oczywiście znalazłem kilka libów, które umożliwiają generowanie wykresów w php.

Zacząłem o google charts które generuje bardzo eleganckie wykresy, i właściwie nie potrzebuje php…

do wygenerowania takiego wykresu wystarczy spreparowanie odpowiedniego linka i umieszczenie go w atrybucie
src=”http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=350×150&chl=Hello|World”

Jednak google charts nie do końca spełniają moje potrzeby, do genreowania prostych wykresów są dosyć wygodne i przed wszystkim szybkie, ale przy bardziej rozbudowanych wykresach mogą być bezużyteczne.

Kolejną biblioteką jakiej się przyjrzałem była Open flash chart


Bardzo fajna biblioteka generuje nam bardzo ładne wykresy, posiada dosyć duży wybór rodzajów wykresów, implementacja w php wydaje się niezbyt skomplikowana. Jedynym minusem jest to, że nie można zapisać wykresu w formie obrazka np. .png (co w moim wypadku jest dosyć ważną sprawą).

Do sporządzenie wykresów użyłem biblioteki Libchart. Biblioteka ta jest dosyć prosta zapewnia jedynie podstawową funkcjonalność, która była mi potrzebna do wygenerowania moich wykresów wykresy nie są w prawdzie tak ładne jak w przypadku poprzednich bibliotek, można je jednak trochę poprawić niestety trzeba przy tym troszeczkę pogrzebać w kodzie samej biblioteki. API nie udostępnia żadnych metod pozwalających na szybką zmianę wyglądu wykresów.

Sporządzenie prostego wykresu wygląda mniej więcej tak:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
	include "libchart/classes/libchart.php";
 
	header("Content-type: image/png");
 
	$chart = new VerticalBarChart(500,250);
 
	$dataSet = new XYDataSet();
	$dataSet->addPoint(new Point("Jan 2005", 273));
	$dataSet->addPoint(new Point("Feb 2005", 321));
	$dataSet->addPoint(new Point("March 2005", 442));
	$dataSet->addPoint(new Point("April 2005", 711));
	$chart->setDataSet($dataSet);
 
	$chart->setTitle("Monthly usage for www.example.com");
	$chart->render();
?>

czego wynikiem jest:

Oczywiście istnieje wiele ciekawych rozwiązań dotyczących wykresów, np. Fusioncharts, PHP/SWF Charts czy AmCharts, jednak warto mieć kilka sprawdzonych rozwiązań dostosowanych do różnych potrzeb.

Powiązane wpisy:

admin Inne, PHP , , ,

  1. | #1

    prawdziwy programista sam pisze skrypt do generowania wykresów ;)

  2. | #2

    Jak ma czas to pisze, a jak nie to wiadomo trzeba poszukać czegoś co by się nadawało do użycia. Jak napiszesz coś ciekawego to daj znać chętnie przetestuje :)

  3. | #3

    Mam proste wykresy na potrzeby monitorowania pozycji w google ;)

  4. | #4

    Dołączam moje darmowe i polskie

  5. | #5

    @FSTATS
    Chyba musisz jeszcze trochę popracować nad swoimi wykresami upychanie wszystkiego w flashvars to raczej mało wygodny pomysł, konfigurację i dane lepiej zaczytywać w jakimś konkretnym formacie np. JSON tak jak jest to w Open Flash Chart 2. Popracuj jeszcze nad swoimi wykresami, szczególnie nad wyglądem. Szary bardzo odstrasza!

  1. No trackbacks yet.
agencja reklamowa lublin ślub i wesele senniki