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. styczeń 31st, 2009 at 13:49 | #1

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

  2. styczeń 31st, 2009 at 18:32 | #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. styczeń 31st, 2009 at 22:20 | #3

    Mam proste wykresy na potrzeby monitorowania pozycji w google ;)

  4. styczeń 28th, 2010 at 20:52 | #4

    Dołączam moje darmowe i polskie

  5. styczeń 28th, 2010 at 21:45 | #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!

  6. czerwiec 22nd, 2010 at 01:04 | #6

    Drugi przykład nie działa?

  7. czerwiec 22nd, 2010 at 07:26 | #7

    @CapaciousCore chodzi ci o OFC czy o libczart? Chyba oba działają.

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