GraphClass v1.0 – графики это просто)

Часто возникает необходимость построить график чего-либо, это может быть и график посещаемости, и результаты голосования, сейчас вообще мало какой проект обходится без подобного функционала.
Я решил написать свой класс. Да есть много аналогов. И гугловские и другие. Но мне хотелось сделать простой класс для создания достаточно стильных графиков.

как это может выглядеть:

column

column


columnone

columnone


vector

vector

как работать с классом:

include 'class.graph.php';
$list=new GraphClass('ARIALN.TTF');

инициализируем класс и указываем файл шрифта (обязательно)
собираем массив с параметрами графика
синтаксис:

array(array(str 'name', int 'size'[,str 'color', int 'size2' - только для vector]),...);


пример:

$T=array(array('name'=>'VW Passat','size'=>1857,'color'=>'#ff0000'),
array('name'=>'ВАЗ 2112','size'=>1626,'color'=>'#111111'),
array('name'=>'ВАЗ 2109','size'=>1486,'color'=>'#013C5A'));


создаем график:
синтаксис:

$img=$list->viewGraph(str название графика,array параметры[, array размеры,str цвет,str тип]);
$img - объект графика
str тип - (
column - классический график
columnone - одноколоночный график
vector - векторный график
)

пример:

$img=$list->viewGraph('Посетители & браузеры',$T, array('width'=>400,'height'=>100), '#ff0000', 'columnone');


выводим результат:
синтаксис:

$list->returnImg($img,str type);
$img - объект графика
str type - (temp - выводит прямо в браузер, через png файл,
str filename - если указать файл с путем к нему, то будет создан файл с графиком, расширение берется из адреса


пример

$list->returnImg($img,'temp');
$list->returnImg($img,'img/1.png');


Набор default цветов можно настроеть в функции precolor()

вот вроде и все, удачной работы)

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Воскресенье, 01 Фев 2009 PHP, Мой скрипт

11 комментариев на GraphClass v1.0 – графики это просто)

  1. Лихо. Удобный класс. Как говорится, просто и со вкусом. :)
    А шрифт зачем обязательно ему подавать? Чтобы проблем с кирилицей не было?

  2. Вирусное СЕО on 02 Фев 2009
  3. да, что бы избежать проблем с кирилицей. И дать возможность подогнать график к дизайну сайта по максимому

  4. DrNemo on 02 Фев 2009
  5. [...] уже есть что почитать. Например, очень нужная статья – GraphClass v1.0 – графики это просто. Дмитрий написал свой php класс для работы с графиками. [...]

  6. Обзоры блогов-победителей конкурса “Мастер на все руки”. Блог для вебмастеров on 22 Мар 2009
  7. Добрый день!
    Спасибо за класс. Кстати поискал в гугде про «гугловский аналог» – не нашел чего то (имею в виду класс PHP)

  8. Алексей on 07 Окт 2009
  9. Хмм не могу правильно указать данные для построения векторного графика что то не так указываю в массиве =(

  10. Снайпер on 10 Ноя 2009
  11. Понял почему не могу запустить
    ————————————

    $T=array(
    array(‘name’=>’VW Passat’,’size’=>10,’color’=>’#111111′,’size2′=>10),
    array(‘name’=>’ВАЗ 2112′,’size’=>20,’color’=>’#111111′, ’size2′=>10),
    array(‘name’=>’ВАЗ 2109′,’size’=>30,’color’=>’#111111′,’size2′=>10)
    );

    при size2 одинаковом график не строится хотя по сути должен отрисовать … или у меня с математикой плохо ….

  12. Снайпер on 10 Ноя 2009
  13. Продолжаю эксперименты и данная фича очень мешает построению графика =( полезу копать исходник чтобы все корректно работало

  14. Снайпер on 10 Ноя 2009
  15. и в правду есть такая проблема. Связана она с построением сетки, т.к. шаг рассчитывается на основе разничы между значениями.
    В следующей версии будет исправлен.

  16. DrNemo on 10 Ноя 2009
  17. Эт снова я… Насколько я понимаю новая версия не так уж и скоро будет. У меня возинкла необходимость устранить этот баг так как он накладывает определенные сложности на построение графкиов.

    Не подскажите в каком месте класса нужно начинать ковырять чтобы устранить этот момент ?

  18. Снайпер on 27 Ноя 2009
  19. Снайпер, я обновил версию класса. Можете скачать или сами внести изменения.
    В приватной функции vector($p,$t)
    перед строчкой
    $wwX=$maxX;$wwY=$maxY+$minvhodY;$kvX=$wX;$kvY=$wY;
    добавте
    if($minvhodY==0)$minvhodY=$minY;if($minvhodX==0)$minvhodX=$minX;
    это будет строка номер 152

  20. DrNemo on 27 Ноя 2009
  21. Так, чисто из вредности :-) , исправь в самом классе – «заспростоняется по лицензие GPL «

  22. Alex on 26 Янв 2010

Ваш отзыв

Читать в Яндекс.Ленте
регистрация доменов
Зарегистрируй себе домен!
.RU - 99 рублей в год
www.
Блогун - реклама в блогах. Хостинг для блогов

Поиск

 

Комментарии