Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan antara muka php dan ECharts untuk melaksanakan penapisan data dan penapisan carta statistik

Cara menggunakan antara muka php dan ECharts untuk melaksanakan penapisan data dan penapisan carta statistik

PHPz
PHPzasal
2023-12-17 17:36:47783semak imbas

Cara menggunakan antara muka php dan ECharts untuk melaksanakan penapisan data dan penapisan carta statistik

Cara menggunakan antara muka php dan ECharts untuk melaksanakan penapisan data dan penapisan carta statistik, contoh kod khusus diperlukan

Dalam visualisasi data, menggunakan carta statistik ialah cara biasa untuk memaparkan data. Dalam aplikasi praktikal, data selalunya perlu ditapis dan ditapis untuk memenuhi keperluan yang berbeza. Antara muka PHP dan ECharts ialah dua alat yang digunakan secara meluas di mana penapisan data dan penapisan carta statistik boleh dilaksanakan.

Yang berikut akan menggunakan contoh untuk menunjukkan cara menggunakan antara muka PHP dan ECharts untuk melaksanakan penapisan dan penapisan data.

Pertama, kita perlu menyediakan sumber data, seperti sumber data yang mengandungi data suhu untuk berbilang bandar. Sumber data boleh berupa jadual pangkalan data, fail CSV atau fail JSON, dsb. Andaikan bahawa kami telah menyediakan fail JSON dengan kandungan berikut:

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

Seterusnya, kami perlu mencipta antara muka PHP untuk mengendalikan permintaan penapisan dan penapisan data. Kita boleh menggunakan fungsi operasi fail PHP untuk membaca fail sumber data dan menapis serta menapis data berdasarkan keadaan pertanyaan. Berikut ialah contoh kod mudah:

<?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);
}

?>

Dalam kod di atas, kami mula-mula membaca fail sumber data menggunakan fungsi file_get_contents dan menghuraikannya ke dalam tatasusunan PHP melalui json_decode fungsi. Kemudian, kami menentukan sama ada terdapat nama bandar yang dihantar ke antara muka PHP sebagai syarat pertanyaan. Jika ada, kami melintasi tatasusunan data, menapis berdasarkan nama bandar dan mengembalikan data yang ditapis ke dalam tatasusunan baharu. Jika tiada syarat pertanyaan, kami mengembalikan data asal secara langsung. file_get_contents 函数读取数据源文件,并通过 json_decode 函数解析为 PHP 数组。然后,我们判断是否有城市名称作为查询条件传递给 PHP 接口。如果有,我们遍历数据数组,根据城市名称进行筛选,并将筛选后的数据组成新的数组返回。如果没有查询条件,我们直接返回原始数据。

使用 PHP 接口之后,我们需要在前端页面中使用 ECharts 来展示数据并进行筛选和过滤。以下是一个简单的HTML页面代码,其中包含 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>

在上述 HTML 代码中,我们使用了一个 <select></select> 元素作为筛选条件的选择框,通过监听其 change 事件来重新获取数据并更新图表。在 fetchData 函数中,我们使用了 fetch 函数进行 Ajax 请求,并将响应数据解析为 JSON 格式。

同时,在初始化图表时,我们调用了 fetchData 函数,将获取到的数据进行处理,然后将处理后的数据赋值给 ECharts 中的 option 对象,最后通过 chart.setOption(option)

Selepas menggunakan antara muka PHP, kita perlu menggunakan ECharts di halaman hadapan untuk memaparkan data dan penapis. Berikut ialah kod halaman HTML ringkas, yang mengandungi kod pengenalan dan permulaan ECharts:

rrreee

Dalam kod HTML di atas, kami menggunakan elemen <select></select> sebagai kotak pilihan untuk keadaan penapis , Ambil semula data dan kemas kini carta dengan mendengar acara changenya. Dalam fungsi fetchData, kami menggunakan fungsi fetch untuk membuat permintaan Ajax dan menghuraikan data respons ke dalam format JSON. 🎜🎜Pada masa yang sama, apabila memulakan carta, kami memanggil fungsi fetchData untuk memproses data yang diperoleh, dan kemudian memberikan data yang diproses kepada objek option dalam ECharts , dan akhirnya memaparkan carta melalui chart.setOption(option). 🎜🎜Melalui contoh kod di atas, kami boleh melaksanakan penapisan dan penapisan data carta statistik berdasarkan antara muka PHP dan ECharts. Dalam aplikasi praktikal, kami boleh mengubah suai dan melanjutkan kod ini mengikut keperluan khusus untuk memenuhi keperluan analisis data dan visualisasi yang lebih kompleks. 🎜

Atas ialah kandungan terperinci Cara menggunakan antara muka php dan ECharts untuk melaksanakan penapisan data dan penapisan carta statistik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn