PHP中如何实现图表和数据可视化?

概述

在现代的Web应用程序中,图表和数据可视化已经成为数据呈现的标准方式。PHP作为一种流行的Web开发语言,可以轻松地实现图表和数据可视化。本文将介绍PHP中的一些流行的图表和数据可视化库,以及如何使用它们来创建漂亮的图表和数据可视化。

PHP图表和数据可视化库

PHP中有几个流行的图表和数据可视化库,包括:

这些库提供了各种类型的图表和数据可视化,包括线图、柱状图、饼图、热图、地图等等。这些库使用简单,灵活,而且有强大的功能。

使用Plotly PHP创建图表

Plotly PHP是一个基于Plotly.js库的PHP库,可以创建各种类型的交互式图表。在使用Plotly PHP之前,需要安装Plotly.js和Plotly PHP库。

// 安装Plotly.js库
npm install plotly.js

// 安装Plotly PHP库
composer require plotly/php

下面是一个简单的例子,使用Plotly PHP创建一个线图:

// 引入Plotly PHP库
require_once 'vendor/autoload.php';

// 创建数据
$x = array(1, 2, 3, 4, 5);
$y = array(1, 4, 9, 16, 25);

// 创建图表数据
$data = array(
  array(
    'x' => $x,
    'y' => $y,
    'type' => 'scatter'
  )
);

// 创建布局
$layout = array(
  'title' => 'My Plot'
);

// 创建图表
$plot = new Plotly\Plotly('username', 'api_key');
$response = $plot->plot($data, $layout);
echo $response['url'];

运行上面的代码,将会生成一个交互式的线图,可以使用鼠标缩放、移动等操作。

使用FusionCharts PHP创建图表

FusionCharts PHP是一个基于FusionCharts库的PHP库,可以创建各种类型的图表。在使用FusionCharts PHP之前,需要安装FusionCharts和FusionCharts PHP库。

// 安装FusionCharts库
npm install fusioncharts

// 安装FusionCharts PHP库
composer require fusioncharts/php-wrapper

下面是一个简单的例子,使用FusionCharts PHP创建一个柱状图:

// 引入FusionCharts PHP库
require_once 'vendor/autoload.php';

// 创建数据
$data = array(
  array(
    'label' => 'January',
    'value' => '420000'
  ),
  array(
    'label' => 'February',
    'value' => '810000'
  ),
  array(
    'label' => 'March',
    'value' => '720000'
  ),
  array(
    'label' => 'April',
    'value' => '550000'
  ),
  array(
    'label' => 'May',
    'value' => '910000'
  )
);

// 创建图表配置
$config = array(
  'type' => 'column2d',
  'renderAt' => 'chart-container',
  'width' => '500',
  'height' => '300',
  'dataFormat' => 'json',
  'dataSource' => array(
    'chart' => array(
      'caption' => 'Monthly Revenue',
      'subCaption' => 'Last year',
      'xAxisName' => 'Month',
      'yAxisName' => 'Revenue',
      'theme' => 'fusion'
    ),
    'data' => $data
  )
);

// 创建图表
$chart = new FusionCharts("column2d", "myChart" , "500", "300", "chart-container", "json", json_encode($config));
$chart->render();

运行上面的代码,将会生成一个柱状图。

使用Highcharts PHP创建图表

Highcharts PHP是一个基于Highcharts库的PHP库,可以创建各种类型的交互式图表。在使用Highcharts PHP之前,需要安装Highcharts和Highcharts PHP库。

// 安装Highcharts库
npm install highcharts

// 安装Highcharts PHP库
composer require miloschuman/highcharts-php

下面是一个简单的例子,使用Highcharts PHP创建一个饼图:

// 引入Highcharts PHP库
require_once 'vendor/autoload.php';

// 创建数据
$data = array(
  array(
    'name' => 'Chrome',
    'y' => 61.41
  ),
  array(
    'name' => 'Internet Explorer',
    'y' => 11.84
  ),
  array(
    'name' => 'Firefox',
    'y' => 10.85
  ),
  array(
    'name' => 'Edge',
    'y' => 4.67
  ),
  array(
    'name' => 'Safari',
    'y' => 4.18
  ),
  array(
    'name' => 'Other',
    'y' => 7.05
  )
);

// 创建图表配置
$chart = array(
  'chart' => array(
    'plotBackgroundColor' => null,
    'plotBorderWidth' => null,
    'plotShadow' => false,
    'type' => 'pie'
  ),
  'title' => array(
    'text' => 'Browser market shares in January, 2018'
  ),
  'tooltip' => array(
    'pointFormat' => '{series.name}: {point.percentage:.1f}%'
  ),
  'plotOptions' => array(
    'pie' => array(
      'allowPointSelect' => true,
      'cursor' => 'pointer',
      'dataLabels' => array(
        'enabled' => false
      ),
      'showInLegend' => true
    )
  ),
  'series' => array(
    array(
      'name' => 'Brands',
      'colorByPoint' => true,
      'data' => $data
    )
  )
);

// 创建图表
$highcharts = new Highcharts\Highcharts();
echo $highcharts->chart("container", $chart);

运行上面的代码,将会生成一个交互式的饼图。

使用NVD3创建图表

NVD3是一个基于D3.js库的图表库,提供了许多漂亮的图表。PHP中可以使用NVD3 PHP库来创建NVD3图表。在使用NVD3 PHP之前,需要安装D3.js和NVD3 PHP库。

// 安装D3.js库
npm install d3

// 安装NVD3 PHP库
composer require phpnvd3/phpnvd3

下面是一个简单的例子,使用NVD3 PHP创建一个线图:

// 引入NVD3 PHP库
require_once 'vendor/autoload.php';

// 创建数据
$data = array(
  array(
    "key" => "Series 1",
    "values" => array(
      array( "x" => 0, "y" => 4 ),
      array( "x" => 1, "y" => 8 ),
      array( "x" => 2, "y" => 15 ),
      array( "x" => 3, "y" => 16 ),
      array( "x" => 4, "y" => 23 ),
      array( "x" => 5, "y" => 42 )
    )
  )
);

// 创建图表配置
$chart = new \PhpNvd3\Nvd3\LineChart();
$chart->xAxis
  ->axisLabel('Time (ms)')
  ->tickFormat('d')
;
$chart->yAxis
  ->axisLabel('Voltage (v)')
  ->tickFormat('.02f')
;
$chart->datum($data);
$chart->render();

运行上面的代码,将会生成一个漂亮的线图。

使用PhpSpreadsheet创建数据可视化

除了图表库之外,PHP还有一个流行的库PhpSpreadsheet,可以创建Excel文件和各种格式的电子表格。可以使用PhpSpreadsheet创建各种类型的数据可视化,包括表格、图表等。

// 安装PhpSpreadsheet库
composer require phpoffice/phpspreadsheet

下面是一个简单的例子,使用PhpSpreadsheet创建一个Excel文件:

// 引入PhpSpreadsheet库
require_once 'vendor/autoload.php';

// 创建Excel对象
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// 设置表格数据
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'Age');
$sheet->setCellValue('C1', 'City');
$sheet->setCellValue('A2', 'John Doe');
$sheet->setCellValue('B2', '25');
$sheet->setCellValue('C2', 'New York');

// 创建图表
$chart = new \PhpOffice\PhpSpreadsheet\Chart\Chart(
    'Sample Chart',
    new \PhpOffice\PhpSpreadsheet\Chart\Title('My Chart')
);
$chart->setTopLeftPosition('E1');
$chart->setBottomRightPosition('L10');
$chart->setChartType(\PhpOffice\PhpSpreadsheet\Chart\Chart::TYPE_BAR_CLUSTERED);
$chart->setAxisX(
    new \PhpOffice\PhpSpreadsheet\Chart\Axis('Category', array(
        new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$4')
    ))
);
$chart->setAxisY(
    new \PhpOffice\PhpSpreadsheet\Chart\Axis('Value', array(
        new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$4')
    ))
);
$chart->addSeries(
    new \PhpOffice\PhpSpreadsheet\Chart\DataSeries(
        new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$4'),
        new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$2:$C$4'),
        new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$4'),
        null,
        array(
            \PhpOffice\PhpSpreadsheet\Chart\DataSeries::STYLE_COLOR => new \PhpOffice\PhpSpreadsheet\Style\Color('FF0000')
        )
    )
);

// 将图表添加到Excel文件
$spreadsheet->addChart($chart);

// 保存Excel文件
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('sample.xlsx');

运行上面的代码,将会生成一个包含图表的Excel文件。

结论

PHP中有许多流行的图表和数据可视化库,可以轻松地创建漂亮的图表和数据可视化。在选择库的时候,需要根据自己的需求选择合适的库。同时,需要注意一些库的使用限制和许可证问题。

本文来源:词雅网

本文地址:https://www.ciyawang.com/7zf2u0.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐