首頁 >Java >java教程 >ECharts與Java介面:如何快速實現折線圖、長條圖、圓餅圖等統計圖

ECharts與Java介面:如何快速實現折線圖、長條圖、圓餅圖等統計圖

王林
王林原創
2023-12-17 22:37:111643瀏覽

ECharts與Java介面:如何快速實現折線圖、長條圖、圓餅圖等統計圖

ECharts和Java介面:如何快速實現折線圖、長條圖、餅圖等統計圖,需要具體程式碼範例

隨著網路時代的到來,數據分析變得越來越重要。統計圖表是一種非常直觀而有力的展示方式,透過圖表可以更清楚地展示數據,讓人們更能理解數據的內涵和規律。在Java開發中,我們可以使用ECharts和Java介面來快速實現各種統計圖表的展示。

ECharts是一款由百度開發的基於HTML5 Canvas的資料視覺化圖表庫,可以輕鬆地繪製出各式各樣的圖表,包括折線圖、長條圖、圓餅圖等等。而Java介面則是一種讓後端資料與前端展示互動的技術,可以透過Java程式碼向前端傳遞資料。接下來我們將介紹如何使用ECharts和Java介面來快速實現各種統計圖表的展示。

  1. 實現折線圖

折線圖是一種透過連接資料點來表示資料趨勢的圖表。在ECharts中,我們可以透過以下程式碼來實現折線圖:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '折线图'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["周一","周二","周三","周四","周五","周六","周日"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 20, 30, 40]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

以上程式碼展示如何使用ECharts來實現一張折線圖。我們可以在option物件中設定圖表的各種參數,例如圖表的標題、x軸和y軸的標籤等。透過把資料傳遞給series中的data屬性,即可在圖表中顯示對應的資料。最後使用setOption方法來渲染圖表。

在Java中如何實現折線圖呢?我們可以透過以下Java程式碼來向前端傳遞資料:

@RequestMapping("/echarts")
@ResponseBody
public Map<String,Object> echarts(){
    List<String> categories = new ArrayList<String>();
    categories.add("周一");
    categories.add("周二");
    categories.add("周三");
    categories.add("周四");
    categories.add("周五");
    categories.add("周六");
    categories.add("周日");

    List<Integer> data = new ArrayList<Integer>();
    data.add(5);
    data.add(20);
    data.add(36);
    data.add(10);
    data.add(20);
    data.add(30);
    data.add(40);

    Map<String,Object> result = new HashMap<String,Object>();
    result.put("categories",categories);
    result.put("data",data);

    return result;
}

以上程式碼中,我們建立了一個Map對象,並把x軸和y軸的資料分別放到categories和data中。然後把Map物件回傳給前端。

最後,在前端程式碼中加入以下JS程式碼,即可完成折線圖的後端資料渲染:

$.ajax({
    url: '/echarts',
    type: 'get',
    success: function(data){
        var categories = data.categories;
        var data = data.data;
        var option = {
            title: {
                text: '折线图'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: categories
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'line',
                data: data
            }]
        };
        myChart.setOption(option);
    },
    error: function(){
        alert('error');
    }
});
  1. 實作長條圖

長條圖是一種用來比較不同類別資料大小的圖表。在ECharts中,我們可以透過以下程式碼來實現長條圖:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '柱状图'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["周一","周二","周三","周四","周五","周六","周日"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 20, 30, 40]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

以上程式碼展示如何使用ECharts來實現長條圖。與折線圖類似,我們可以在option物件中設定圖表的各種參數,例如圖表的標題、x軸和y軸的標籤等。同時,我們只要把type屬性設為'bar',就可以將折線圖轉換為長條圖。

在Java中如何實作長條圖呢?我們可以透過以下Java程式碼來向前端傳遞資料:

@RequestMapping("/echarts")
@ResponseBody
public Map<String,Object> echarts(){
    List<String> categories = new ArrayList<String>();
    categories.add("周一");
    categories.add("周二");
    categories.add("周三");
    categories.add("周四");
    categories.add("周五");
    categories.add("周六");
    categories.add("周日");

    List<Integer> data = new ArrayList<Integer>();
    data.add(5);
    data.add(20);
    data.add(36);
    data.add(10);
    data.add(20);
    data.add(30);
    data.add(40);

    Map<String,Object> result = new HashMap<String,Object>();
    result.put("categories",categories);
    result.put("data",data);

    return result;
}

以上程式碼中,我們建立了一個Map對象,並把x軸和y軸的資料分別放到categories和data中。然後把Map物件回傳給前端。在前端程式碼中加入以下JS程式碼,即可完成長條圖的後端資料渲染:

$.ajax({
    url: '/echarts',
    type: 'get',
    success: function(data){
        var categories = data.categories;
        var data = data.data;
        var option = {
            title: {
                text: '柱状图'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: categories
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: data
            }]
        };
        myChart.setOption(option);
    },
    error: function(){
        alert('error');
    }
});
  1. #實作餅圖

圓餅圖是一種用來表示數據佔比情況的圖表。在ECharts中,我們可以透過以下程式碼來實現餅圖:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '饼图',
        subtext: '数据来自网络'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b}: {c} ({d}%)'
    },
    legend: {
        orient: 'vertical',
        left: 10,
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: ['50%', '70%'],
            avoidLabelOverlap: false,
            label: {
                show: false,
                position: 'center'
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: '30',
                    fontWeight: 'bold'
                }
            },
            labelLine: {
                show: false
            },
            data: [
                {value: 335, name: '直接访问'},
                {value: 310, name: '邮件营销'},
                {value: 234, name: '联盟广告'},
                {value: 135, name: '视频广告'},
                {value: 1548, name: '搜索引擎'}
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

以上程式碼展示如何使用ECharts來實現圓餅圖。與折線圖、長條圖類似,我們可以在option物件中設定圖表的各種參數,例如圖表的標題、x軸和y軸的標籤等。透過把資料傳遞給series中的data屬性,即可在圖表中顯示對應的資料。注意這裡餅圖的資料需要滿足值與名稱對應的格式,如{value:335, name:'直接存取'}。

在Java中如何實作圓餅圖呢?我們可以透過以下Java程式碼來傳遞資料到前端:

@RequestMapping("/echarts")
@ResponseBody
public List<Map<String,Object>> echarts(){
    List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();

    Map<String,Object> data1 = new HashMap<String,Object>();
    data1.put("value",335);
    data1.put("name","直接访问");
    result.add(data1);

    Map<String,Object> data2 = new HashMap<String,Object>();
    data2.put("value",310);
    data2.put("name","邮件营销");
    result.add(data2);

    Map<String,Object> data3 = new HashMap<String,Object>();
    data3.put("value",234);
    data3.put("name","联盟广告");
    result.add(data3);

    Map<String,Object> data4 = new HashMap<String,Object>();
    data4.put("value",135);
    data4.put("name","视频广告");
    result.add(data4);

    Map<String,Object> data5 = new HashMap<String,Object>();
    data5.put("value",1548);
    data5.put("name","搜索引擎");
    result.add(data5);

    return result;
}

以上程式碼中,我們建立了一個含有5個元素的Map數組,並把值和名稱儲存到Map中。然後把Map陣列回傳給前端。在前端程式碼中加入以下JS程式碼,即可完成餅圖的後端資料渲染:

$.ajax({
    url: '/echarts',
    type: 'get',
    success: function(data){
        var legendData = [];
        var seriesData = [];
        $.each(data,function(index,item){
            legendData.push(item.name);
            seriesData.push(item);
        });

        var option = {
            title: {
                text: '饼图',
                subtext: '数据来自网络'
            },
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>{b}: {c} ({d}%)'
            },
            legend: {
                orient: 'vertical',
                left: 10,
                data: legendData
            },
            series: [
                {
                    name: '访问来源',
                    type: 'pie',
                    radius: ['50%', '70%'],
                    avoidLabelOverlap: false,
                    label: {
                        show: false,
                        position: 'center'
                    },
                    emphasis: {
                        label: {
                            show: true,
                            fontSize: '30',
                            fontWeight: 'bold'
                        }
                    },
                    labelLine: {
                        show: false
                    },
                    data: seriesData
                }
            ]
        };
        myChart.setOption(option);
    },
    error: function(){
        alert('error');
    }
});

總結:

透過上述範例,我們可以發現使用ECharts和Java介面來展示統計圖表非常簡單。只需要在前端程式碼中呼叫Java介面取得數據,然後傳遞給ECharts的option物件。在Java介面中需要先把資料封裝到Map或List等集合物件中,然後再回傳給前端。自然,如果使用Spring Boot更加方便。 ECharts和Java介面的組合可以適應各種前後端分離的開發模式。

以上是ECharts與Java介面:如何快速實現折線圖、長條圖、圓餅圖等統計圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn