Rumah >pembangunan bahagian belakang >tutorial php >Lukis grafik dalam PHP
PHP Editor Shinichi membawakan anda panduan terperinci tentang lukisan grafik dalam PHP. Sama ada anda melukis bentuk geometri asas atau mencipta carta visualisasi data yang kompleks, PHP menyediakan keupayaan pemprosesan grafik yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan perpustakaan GD PHP dan alatan lain untuk menjana pelbagai grafik dalam halaman web secara dinamik, dan meneroka beberapa petua dan teknologi praktikal. Mari kita terokai dunia menarik grafik dalam PHP!
Sebelum menggunakan pChart
, anda perlu memasang php5 dahulu. Anda boleh mendapatkan PHP5 sebagai sebahagian daripada XAMPP 5.5.28 daripada SourceForge.
Apabila anda mempunyai XAMPP 5.5.28, muat turun dari laman web rasmi mereka pChart
。之后,将 pChart
提取到 XAMPP 5.5.28 的 htdocs
. Selepas itu, ekstrak
htdocs
XAMPP 5.5.28.
pChart
Buka folder
Nota:
class
fonts
pChart
Selepas melengkapkan persediaan
pChart
Lukis carta bar menggunakan
pChart
绘制条形图的 PHP 代码必须包含 class
Kod PHP untuk melukis carta bar menggunakan
pData.class.php
pImage.class.php
pDraw.class.php
pData.class.php
允许你加载将在图表中使用的数据。你需要 pDraw.class.php
membolehkan anda memuatkan data yang akan digunakan dalam carta. Anda perlu pImage.class.php
将让你在 WEB 浏览器中呈现图表。你必须使用 PHP required_once()
untuk melukis graf.
Seterusnya, PCART_PATH
常量。然后使用 set_include_path()
,你可以为 pChart
akan membenarkan anda memaparkan carta dalam penyemak imbas
anda. Anda mesti menggunakan PHP required_once()
untuk memasukkan fail ini. pChart
set_include_path()
anda boleh menggunakan nama direktori pendek untuk PCART_PATH
set_include_path()
作为 pChart
required_once()
包含 pChart
pemalar. set_include_path()
sebagai nama direktori pendek untuk kelas pData
. required_once()
untuk memasukkan kelas addPoints
方法将数据添加到 pData
Buat objek pImage
Cipta data anda atau importnya. addPoints
untuk menambah data pada objek pData
的 setGraphArea
Gunakan pData
的 drawScale
和 drawBarChart
Tetapkan fon carta. setGraphArea
pData
的 Render
方法渲染图像。确保将 null
传递给 Render
Gunakan kaedah drawScale
dan drawBarChart
Hantar maklumat pengepala untuk memberitahu penyemak imbas bahawa anda sedang menghantar imej.
Gunakan kaedah Render
null
kepada kaedah Render
. Di bawah ialah pelaksanaan langkah-langkah ini. Di bawah ialah imej output dalam Firefox 101.0.
<?php // The definition of the PCHART_PATH assumes // you have pChart one directory above your // current working folder. define("PCHART_PATH", "../pChart"); set_include_path(get_include_path() . PATH_SEPARATOR . PCHART_PATH); // Since we have defined the path, and used // the get_include_path() function, we can // reference the class folder without writing // its full path. require_once "class/pDraw.class.php"; require_once "class/pImage.class.php"; require_once "class/pData.class.php"; // Create the pChart Object $pchart_data = new pData(); // Some sample data that we'll use to plot // the bar chart. $sample_data_set = [5, 4, 3, 2, 1, 9, 10, 12]; $pchart_data->addPoints($sample_data_set); // Create the pChart Image. The first two argument // to the pImage object are the width and height // of the rendered chart. $pchart_image = new pImage(500, 300, $pchart_data); // Set the font. $pchart_image->setFontProperties( ["FontName" => PCHART_PATH . "/fonts/ForGotte.ttf", "FontSize" => 16] ); // Define the graph area. The first two arguments // are the x-coordinates. While the last two are // the y-coordinates. $pchart_image->setGraphArea(35, 25, 475, 275); $pchart_image->drawScale(); $pchart_image->drawBarChart(); // Render the chart as a PNG image header("Content-Type: image/png"); $pchart_image->Render(null); ?>
pChart
drawSplineChart
Lukis spline menggunakan pData
的 Stroke
dalam PHP
Proses melukis spline adalah sama seperti melukis bar, kecuali anda menggunakan kaedah pChart
绘制样条图。此外,我们使用的是 fonts
目录中的 MankSans.ttf
untuk melukis spline. Selain itu, anda boleh memilih untuk tidak menghantar carta sebagai imej.
Sebaliknya, anda boleh memilih kaedah Stroke
Kod berikut menggunakan
untuk melukis spline. Selain itu, kami menggunakan fonMankSans.ttf
daripada direktori <?php // The definition of the PCHART_PATH assumes // you have pChart one directory above your // current working folder. define("PCHART_PATH", "../pChart"); set_include_path(get_include_path() . PATH_SEPARATOR . PCHART_PATH); // Since we have defined the path, and used // the get_include_path() function, we can // reference the class folder without writing // its full path. require_once "class/pDraw.class.php"; require_once "class/pImage.class.php"; require_once "class/pData.class.php"; // Create the pChart Object $pchart_data = new pData(); // Some sample data that we'll use to plot // the spline chart. $pchart_data->addPoints([4,2,1,4]); // Create the pChart Image. The first two argument // to the pImage object are the width and height // of the rendered chart. $pchart_image = new pImage(700, 220, $pchart_data); // Set the font. $pchart_image->setFontProperties( ["FontName" => PCHART_PATH . "/fonts/MankSans.ttf", "FontSize"=> 18] ); // Define the graph area. The first two arguments // are the x-coordinates. While the last two are // the y-coordinates. $pchart_image->setGraphArea(60, 40, 670, 190); $pchart_image->drawScale(); $pchart_image->drawSplineChart(); // Draw the chart as a stroke. $pchart_image->Stroke(); ?>Keluaran:
Lukis carta bar daripada 🎜mysql🎜 🎜pangkalan data🎜 dalam PHP🎜 🎜 Melukis histogram mengikut langkah yang serupa dengan petak bar dan spline. Walau bagaimanapun, terdapat beberapa perbezaan yang patut ditunjukkan. 🎜
首先,直方图的数据将来自 Mysql。这意味着你应该有一个包含一些示例数据的数据库。
其次,你将使用表列名称作为直方图上的轴。为此,你将使用一些 pData
方法,例如 setAbscissa
、setSeriesOnAxis
和 setAxisName
。
现在,创建一个名为 weather_measurements
的数据库,然后使用以下命令创建一个表:
CREATE TABLE measures ( timestamp INT NOT NULL DEFAULT '0', temperature INT NOT NULL, humidity INT NOT NULL )
使用以下命令将样本数据插入 measures
表中:
INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 20, 50); INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 18, 44); INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 19, 70);
确保样本数据在数据库中,然后使用以下命令创建直方图:
<?php // The definition of the PCHART_PATH assumes // you have pChart one directory above your // current working folder. define("PCHART_PATH", "../pChart"); set_include_path(get_include_path() . PATH_SEPARATOR . PCHART_PATH); // Since we have defined the path, and used // the get_include_path() function, we can // reference the class folder without writing // its full path. require_once "class/pDraw.class.php"; require_once "class/pImage.class.php"; require_once "class/pData.class.php"; // Create the pChart Object $pchart_data = new pData(); // Connect to MySQL $connect_to_mysql = new mysqli("localhost", "root", "", "weather_measurements"); // query the database and get the result $query_the_table = "SELECT * FROM measures"; $mysql_result= mysqli_query($connect_to_mysql, $query_the_table); // Declare the variables for the database // records as empty strings. Later, we'll // turn them into arrays for better perfORMance $timestamp = ""; $temperature = ""; $humidity = ""; while($row = mysqli_fetch_array($mysql_result, MYSQLI_ASSOC)) { $timestamp[] = $row["timestamp"]; $temperature[] = $row["temperature"]; $humidity[]= $row["humidity"]; } $pchart_data->addPoints($timestamp,"Timestamp"); $pchart_data->addPoints($temperature,"Temperature"); $pchart_data->addPoints($humidity,"Humidity"); // Put the table column on the appropriate axis $pchart_data->setAbscissa("Timestamp"); $pchart_data->setSerieOnAxis("Humidity", 1); $pchart_data->setXAxisName("Time"); $pchart_data->setXAxisDisplay(AXIS_FORMAT_TIME,"H:i"); // Dedicate the first and second axis to // Temperature and Humidity. $pchart_data->setAxisName(0, "Temperature"); $pchart_data->setAxisUnit(0, "°C"); $pchart_data->setAxisName(1, "Humidity"); $pchart_data->setAxisUnit(0, "%"); // Create the pChart Image. The first two argument // to the pImage object are the width and height // of the rendered chart. $pchart_image = new pImage(500, 300, $pchart_data); // Set the font. $pchart_image->setFontProperties( ["FontName" => PCHART_PATH . "/fonts/verdana.ttf", "FontSize"=> 11] ); // Set the graph area. $pchart_image->setGraphArea(55,25, 475,275); $pchart_image->drawScale(); $pchart_image->drawBarChart(); // Draw the chart as a stroke. $pchart_image->Stroke(); ?>
输出(你的时间会有所不同):
Atas ialah kandungan terperinci Lukis grafik dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!