Главная > Программирование > PHP Создание графиков с помощью pChartБиблиотекаЗагрузить библиотеку можно на страничке Downloads на официальном сайте. Текущая версия этой библиотеки имеет номер 1.27. Распространяется эта библиотека под лицензией GNU General Public License, как написано в файле pChart/pChart.class самой библиотеки, любой из версий 1, 2 или 3 или любой другой поздней версии. УстановкаДля установки достаточно распаковать архив в текущую папку. Появится несколько файлов с примерами, а также папки Cache, Fonts, pChart, Sample и tmp. В документации на сайте разработчиков я не нашел требований к PHP. Я тестировал на версии 5.2.13 и могу сказать, что проблем для этой версии нет никаких. Кроме самого PHP нужно еще расширение для работы с GD.Создание графикаДля создания графика возьмем данные Российской фондовой биржи за месяц:26.03 1519.87 1768.17 Сохранив эти данные в файле с именем rts.txt, напишем небольшую функцию, которая вытащит данные из файла. Вот эта функция /**
* @return array
*/
function getdata($file)
{
if (file_exists($file)) {
$lines = file($file);
$data = array('date' => array(), 'rts' => array(),
'rts2' => array());
foreach ($lines as $line) {
$tmp = explode(' ', trim($line));
$data['date'][] = $tmp[0];
$data['rts'][] = trim($tmp[1]);
$data['rts2'][] = trim($tmp[2]);
}
return $data;
} else {
return false;
}
}
Теперь напишем код, который выведет график в браузер. AddPoint($d['rts'],"Serie1");
$DataSet->AddPoint($d['rts2'],"Serie2");
$DataSet->AddPoint($d['date'],"Serie3");
//устанавливаем точки с датами
//на ось абсцисс
$DataSet->SetAbsciseLabelSerie("Serie3");
//помечаем данные как предназначеные для
//отображения
$DataSet->AddSerie("Serie1");
$DataSet->AddSerie("Serie2");
//устанавливаем имена
$DataSet->SetSerieName(mb_convert_encoding(
"Индекс РТС",'utf-8','windows-1251'), "Serie1");
$DataSet->SetSerieName(mb_convert_encoding(
"Индекс РТС2",'utf-8','windows-1251'), "Serie2");
//создаем график шириной в 1000 и высотой в 500 px
$graph = new pChart(1000,500);
//устанавливаем шрифт и размер шрифта
$graph->setFontProperties("Fonts/tahoma.ttf",10);
//координаты левой верхней вершины и правой нижней
//вершины графика
$graph->setGraphArea(85,30,950,400);
//прорисовываем фон графика
$graph->drawGraphArea(255,255,255,true);
//устанавливаем данные для графиков
$graph->drawScale($DataSet->GetData(),
$DataSet->GetDataDescription(),
SCALE_NORMAL,150,150,150,true,0,2,false,
1);
//рисуем сетку для графика
$graph->drawGrid(4,true,230,230,230,50);
//прорисовываем линейные графики
$graph->drawLineGraph($DataSet->GetData(),
$DataSet->GetDataDescription());
//Пишем заголовок
$graph->setFontProperties("pChart/Fonts/tahoma.ttf",10);
$graph->drawTitle(480,22,
mb_convert_encoding("Индексы РТС",
'utf-8','windows-1251'),
50,50,50,-1,-1,true);
//выводим в браузер
$graph->Stroke();
/**
* @return array
*/
function getdata($file)
{
if (file_exists($file)) {
$lines = file($file);
$data = array('date' => array(), 'rts' => array(),
'rts2' => array());
foreach ($lines as $line) {
$tmp = explode(' ', trim($line));
$data['date'][] = $tmp[0];
$data['rts'][] = trim($tmp[1]);
$data['rts2'][] = trim($tmp[2]);
}
return $data;
} else {
return false;
}
}
?>
В результате получим график индексов фондовой биржи Не плохой график, правда? Основная система построения графиков состоит из двух классов. Для хранения данных используется класс pData, для создания графика – класс pChart. Для добавления точек в объект класса pData используется метод
void pData::AddPoint(mixed $Value, string $Serie= «Serie1»,
string $Description = «»)
Все аргументы, кроме первого необязательные:
Для установки точек одной серии на ось абсцисс, используется метод void pData::SetAbsciseLabelSerie(string $SerieName = «Name»)
Единственный аргумент не обязателен:
Чтобы указать, какие из серий точек будут участвовать в построении графиков нужно вызвать метод void pData::AddSerie(string $SerieName = «Serie1»)
Аргумент
Если нужно добавить все серии точек, то можно вызвать метод void pData::AddAllSeries()
Метод void pData::SetSerieName(string $Name,
string $SerieName = «Serie1»)
устанавливает описание для серии точек. Это описание может быть использовано для создания легенды. Первый аргумент обязателен:
Теперь рассмотрим класс pChart, который, собственно и рисует график. Конструктор этого класса pChart pChart::pChart(int $XSize, int $YSize)
содержит два обязательных аргумента:
Для установки свойств шрифтов используется метод void pChart::setFontProperties(string $FontName,
int $FontSize)
У этого метода оба аргумента обязательны:
Метод void pChart::setGraphArea(int $X1, int Y1, int X2, int Y2)
устанавливает координаты верхнего левого угла и правого нижнего угла графика. Все аргументы обязательны:
Для установки цвета фона графика используем метод void pChart::drawGraphArea(int $R, int $G, int $B,
bool $Stripe = false)
Цвет устанавливается в цветовой системе RGB. Все аргументы, кроме последнего, обязательны:
Метод void pChart::drawScale(array $Data, array $DataDescription,
int $ScaleMode, int $R, int $G, int $B, bool $DrawTicks=true,
int $Angle=0, int $Decimals=1, bool $WithMargin=false,
int $SkipLabels=1, bool $RightScale=false)
прочерчивает обе оси и записывает на них значения. Аргументов целая куча:
Метод void pChart::drawGrid(int $LineWidth, bool $Mosaic=true,
int $R=220, int $G=220, int $B=220, int $Alpha=255)
прорисовывает сетку на фоне графика. Аргументы:
С помощью метода void pChart::drawLineGraph(array $Data,
array $DataDescription)
прорисовывается линейный график, используя все зарегистрированные серии точек. Аргументы:
Для прорисовки заголовка графика используется метод void pChart::drawTitle(int $XPos, int $YPos, string $Value,
int $R, int $G, int $B, int $XPos2=-1, int $YPos=-1,
bool $Shadow=false)
Аргументы:
Метод void pChart::Stroke()
выводит в браузер изображение. Если нужно сохранить изображение в файл, то нужно использовать метод void pChart::Render(string $FileName)
Аргумент:
Заключение Главная > Программирование > PHP |