echats图表插件

饼图实例,


步骤:

1、首先导入echats的相关包,这里echats只有一个js包echarts.min.js。

2、前台:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="assets/js/echarts.min.js"></script>
<script src="assets/jquery.min.js"></script>
<style>
body {
	margin: 0px;
}

.container {
	width: 1130px;
	height: 600px;
}

.nav {
	width: 100%;
	height: 20%;
	border: 1px solid gray;
	box-sizing: border-box;
	text-align: center;
}

</style>
</head>
<body>
<div class="contaner">
			<div class="nav">
				<h1>故障分类统计</h1>
			</div>
			


	<div id="main" style="width: 700px; height: 400px;"></div>
	</div><script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));

		$.post('countc').done(function(data) {
			
			var js=JSON.parse(data);
			myChart.setOption({
				
				tooltip : {
					trigger : 'item',
					formatter : "{a} <br/>{b} : {c} ({d}%)"
				},
				/* legend : {
					orient : 'vertical',
					left : 'left',
					data : [ '直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎' ]
				}, */
				series : [ {
					//name : '访问来源',
					type : 'pie',
					radius : '55%',
					center : [ '50%', '60%' ],
					data : js,
					itemStyle : {
						emphasis : {
							shadowBlur : 10,
							shadowOffsetX : 0,
							shadowColor : 'rgba(0, 0, 0, 0.5)'
						}
					}
				}]
				
				

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

重点是后台数据的获取:

观察饼图的数据结构:


中括号代表数组,后台用ArrayList集合表示,大括号代表对象,所以这个集合里面存放的是对象,且这个对象的字段为value和name。下面自定义一个对象:

package com.ifytek.domain;

public class CClassfiy {
	private Integer value;
	private String name;

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
后台:

package com.ifytek.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.ifytek.domain.CClassfiy;
import com.ifytek.service.EquipService;

@WebServlet("/countc")
public class CountClassfiyServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.getRequestDispatcher("/WEB-INF/jsp/countc.jsp").forward(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8");
		EquipService service=new EquipService();
		ArrayList<CClassfiy> list=service.getClassfiyList();
		String jsonlist=JSON.toJSONString(list,true);
		System.out.println("jsonlist:"+jsonlist);
		resp.getWriter().write(jsonlist);
	}
}
看下这个service里面的相关方法:

public ArrayList<CClassfiy> getClassfiyList() {
		ArrayList<CClassfiy> list=new ArrayList<>();
		EquipDao dao=new EquipDao();
		ResultSet resultSet=dao.getClassfiyList();
		try {
			while(resultSet.next()){
				int value=resultSet.getInt("v");
				String name=resultSet.getString("n");
				CClassfiy cClassfiy=new CClassfiy();
				
				cClassfiy.setValue(value);
				cClassfiy.setName(name);
				list.add(cClassfiy);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}


dao:

public ResultSet getClassfiyList() {
		dbUtil=new DbUtil();
		String sql="select count(*) as v,classfiy as n from equipapply group by classfiy";
		ResultSet resultSet=dbUtil.executeQuery(sql);
		return resultSet;
	}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,您可以先在Vue项目中使用Draggable插件实现拖拽功能,然后使用ECharts库生成图表并将其渲染到拖拽容器中。具体步骤可以参考以下代码: 1. 安装Drabbable插件: ``` npm install vuedraggable --save ``` 2. 在Vue组件中引入Drabbable并定义拖拽容器: ``` <template> <div> <draggable v-model="charts" :options="dragOptions"> <div v-for="(chart, index) in charts" :key="index" class="chart"> <!-- 在这里渲染 Echarts 图表 --> </div> </draggable> </div> </template> <script> import draggable from 'vuedraggable' export default { components: { draggable }, data() { return { charts: [], // 存储图表数据 dragOptions: { // 设置拖拽选项 group: 'charts', animation: 150 } } } } </script> ``` 3. 使用Echarts库生成图表: ``` <template> <div> <draggable v-model="charts" :options="dragOptions"> <div v-for="(chart, index) in charts" :key="index" class="chart"> <!-- 在这里渲染 Echarts 图表 --> <div ref="chart" class="echarts"></div> </div> </draggable> </div> </template> <script> import draggable from 'vuedraggable' import echarts from 'echarts' export default { components: { draggable }, data() { return { charts: [], // 存储图表数据 dragOptions: { // 设置拖拽选项 group: 'charts', animation: 150 } } }, mounted() { this.initEcharts() // 初始化 Echarts 库 }, methods: { initEcharts() { // 在这里使用 Echarts 库生成图表 this.charts = [ { name: 'chart_1', option: { // Echarts 配置项 } }, { name: 'chart_2', option: { // Echarts 配置项 } } ] // 渲染图表 this.charts.forEach((chart) => { let elem = this.$refs.chart[chart.name] let myChart = echarts.init(elem) myChart.setOption(chart.option) }) } } } </script> ``` 以上代码仅作为参考,具体实现方式可以根据项目需求进行调整。希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值