Home  >  Article  >  Backend Development  >  How to use php interface and ECharts to implement data filtering and filtering of statistical charts

How to use php interface and ECharts to implement data filtering and filtering of statistical charts

PHPz
PHPzOriginal
2023-12-17 17:36:47783browse

How to use php interface and ECharts to implement data filtering and filtering of statistical charts

How to use the php interface and ECharts to implement data filtering and filtering of statistical charts requires specific code examples

In data visualization, the use of statistical charts is a common How to display data. In practical applications, data often needs to be screened and filtered to meet different needs. The PHP interface and ECharts are two widely used tools through which data filtering and filtering of statistical charts can be implemented.

The following will use an example to demonstrate how to use the PHP interface and ECharts to implement data filtering and filtering.

First, we need to prepare a data source, such as one containing temperature data for multiple cities. The data source can be a database table, CSV file or JSON file, etc. Assume that we have prepared a JSON file with the following content:

[
    {"city": "北京", "temperature": 25},
    {"city": "上海", "temperature": 28},
    {"city": "广州", "temperature": 30},
    {"city": "深圳", "temperature": 31},
    {"city": "成都", "temperature": 26},
    {"city": "重庆", "temperature": 29}
]

Next, we need to create a PHP interface to handle data filtering and filtering requests. We can use PHP's file operation functions to read data source files and filter and filter the data based on query conditions. The following is a simple sample code:

<?php

// 读取数据源文件
$data = file_get_contents('data.json');

// 解析 JSON 数据
$data = json_decode($data, true);

// 筛选和过滤数据
if (isset($_GET['city'])) {
    $city = $_GET['city'];
    $filteredData = [];
    
    foreach ($data as $item) {
        if ($item['city'] === $city) {
            $filteredData[] = $item;
        }
    }

    echo json_encode($filteredData);
} else {
    echo json_encode($data);
}

?>

In the above code, we first read the data source file using the file_get_contents function and parse it into PHP through the json_decode function array. Then, we determine whether there is a city name passed to the PHP interface as a query condition. If there is, we traverse the data array, filter based on the city name, and return the filtered data into a new array. If there are no query conditions, we return the original data directly.

After using the PHP interface, we need to use ECharts in the front-end page to display data and filter. The following is a simple HTML page code, which contains the introduction and initialization code of ECharts:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts 数据筛选和过滤示例</title>
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.1/dist/echarts.min.js"></script>
</head>
<body>
    <div id="chart" style="width: 600px;height:400px;"></div>
    <select id="citySelect">
        <option value="">全部城市</option>
        <option value="北京">北京</option>
        <option value="上海">上海</option>
        <option value="广州">广州</option>
        <option value="深圳">深圳</option>
        <option value="成都">成都</option>
        <option value="重庆">重庆</option>
    </select>

    <script>
    // 使用 Ajax 请求 PHP 接口获取数据
    function fetchData(city) {
        var url = 'api.php';

        if (city) {
            url += '?city=' + encodeURIComponent(city);
        }

        return fetch(url)
            .then(function(response) {
                return response.json();
            })
            .then(function(data) {
                return data;
            });
    }

    // 初始化图表
    var chart = echarts.init(document.getElementById('chart'));
    var option = {
        title: {
            text: '城市气温'
        },
        tooltip: {},
        legend: {
            data:['城市气温']
        },
        xAxis: {
            data: []
        },
        yAxis: {},
        series: [{
            name: '城市气温',
            type: 'bar',
            data: []
        }]
    };

    // 初始渲染图表
    fetchData().then(function(data) {
        var cities = [];
        var temperatures = [];

        for (var i = 0; i < data.length; i++) {
            cities.push(data[i].city);
            temperatures.push(data[i].temperature);
        }

        option.xAxis.data = cities;
        option.series[0].data = temperatures;

        chart.setOption(option);
    });

    // 监听下拉框选择变化事件,根据选择的值重新获取数据并更新图表
    var citySelect = document.getElementById('citySelect');
    citySelect.addEventListener('change', function() {
        var city = citySelect.value;

        fetchData(city).then(function(data) {
            var cities = [];
            var temperatures = [];

            for (var i = 0; i < data.length; i++) {
                cities.push(data[i].city);
                temperatures.push(data[i].temperature);
            }

            option.xAxis.data = cities;
            option.series[0].data = temperatures;

            chart.setOption(option);
        });
    });
    </script>
</body>
</html>

In the above HTML code, we use a <select></select> element as a filter condition Select the box to re-fetch the data and update the chart by listening to its change event. In the fetchData function, we use the fetch function to make an Ajax request and parse the response data into JSON format.

At the same time, when initializing the chart, we called the fetchData function to process the obtained data, and then assigned the processed data to the option## in ECharts # Object, and finally render the chart through chart.setOption(option).

Through the above sample code, we can implement filtering and filtering of statistical chart data based on the PHP interface and ECharts. In practical applications, we can modify and extend these codes according to specific needs to meet more complex data analysis and visualization needs.

The above is the detailed content of How to use php interface and ECharts to implement data filtering and filtering of statistical charts. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn