ECharts和Java介面:如何快速實現折線圖、長條圖、餅圖等統計圖,需要具體程式碼範例
隨著網路時代的到來,數據分析變得越來越重要。統計圖表是一種非常直觀而有力的展示方式,透過圖表可以更清楚地展示數據,讓人們更能理解數據的內涵和規律。在Java開發中,我們可以使用ECharts和Java介面來快速實現各種統計圖表的展示。
ECharts是一款由百度開發的基於HTML5 Canvas的資料視覺化圖表庫,可以輕鬆地繪製出各式各樣的圖表,包括折線圖、長條圖、圓餅圖等等。而Java介面則是一種讓後端資料與前端展示互動的技術,可以透過Java程式碼向前端傳遞資料。接下來我們將介紹如何使用ECharts和Java介面來快速實現各種統計圖表的展示。
折線圖是一種透過連接資料點來表示資料趨勢的圖表。在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'); } });
長條圖是一種用來比較不同類別資料大小的圖表。在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'); } });
圓餅圖是一種用來表示數據佔比情況的圖表。在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中文網其他相關文章!