【Echarts】Echarts2.0动态加载柱状图~


Echarts在数据可视化方面广泛使用,记录一个使用Echarts动态加载折线图和柱状图的例子。方便以后使用。

与上一篇不同的是,本例子将整个chart放在AJAX的success中加载,而不是只将series[]数据部分加载。


【Echarts】2.0官方API:http://echarts.baidu.com/echarts2/doc/example.html

【Echarts】3.0官方API:http://echarts.baidu.com

js代码:

// 经济发展主要指标配置项
function getEconomicsEcharts() {
	$.ajax({
		type : 'GET',
		async : false,
		url : location.protocol + "/bonc_kmioc_ind/fullscreenOverview/getEconomicsEcharts",
		data : {
			year : "2015"
		},
		success : function(result) {
			var myChart = echarts.init(document
					.getElementById('industryAddedChart'));
			var data = result.dataArr;
			var xAxisArr = result.xAxisArr;
			var legendArr = result.legendArr;
			// 经济发展主要指标配置项
			var industryAddedOption = {
				grid : {
					show : true,
					top : 28,
					right : 20,
					borderColor : 'transparent'
				},
				legend : {
					right : 50,
					data : [ '2010年', '2015年' ],
					color : '#fff',
					icon : 'bar',
					itemWidth : 10,
					itemHeight : 10,
					textStyle : {
						color : '#fff',
						weight : 'bold'
					}
				},
				calculable : true,
				xAxis : [ {
					axisLabel : {
						interval : 0,
						rotate : 37,
						textStyle : {
							color : '#fff',
							// weight: 'bold',
							fontSize : 12
						}

					},
					axisLine : { // 轴线show: true,
						lineStyle : {//轴线颜色样式
							color : "#fff",
							type : 'solid',
							width : 1
						}
					},
					axisTick : {
						show : false,
					},
					type : 'category',
					data : xAxisArr
				} ],
				yAxis : [ {
					axisLabel : {
						textStyle : {
							color : '#fff',
							// weight: 'bold',
							fontSize : 12
						}
					},
					axisLine : { // 轴线show: true,
						lineStyle : {//轴线颜色样式
							color : "#fff",
							type : 'solid',
							width : 1
						}
					},
					left : '5%',
					splitLine : {
						show : false
					},
					type : 'value',
					splitArea : {
						show : true,
						areaStyle : {
							color : [ '#131e2b', 'transparent' ]
						}
					},
					name : '(亿元)',
					nameLocation : 'end',
					nameTextStyle : {
						color : '#fff',
						// weight: 'bold',
						fontSize : 12,
						fontFamily : 'MicrosoftYaHei'
					},
				} ],
				series : [
						{
							name : '2010年',
							type : 'bar',
							data : data[1],
							itemStyle : {
								normal : {
									color : new echarts.graphic.LinearGradient(
											0, 0, 0, 1, [ {
												offset : 0,
												color : '#2ECBB8'
											}, {
												offset : 1,
												color : '#0C5C67'
											} ])
								},
							},

							barWidth : 20,
							label : {
								normal : {
									show : true,
									position : 'top',
									textStyle : {
										color : '#fff',
										fontSize : 12,
										fontFamily : 'MicrosoftYaHei'
									}
								},
							},
						},

						{
							barGap : '22%',
							name : '2015年',
							type : 'bar',
							data : data[0],
							barWidth : 22,
							itemStyle : {
								normal : {
									color : new echarts.graphic.LinearGradient(
											0, 0, 0, 1, [ {
												offset : 0,
												color : '#C43144'
											}, {
												offset : 1,
												color : '#413577'
											} ])
								},
							},
							label : {
								normal : {
									show : true,
									position : 'top',
									textStyle : {
										color : '#fff',
										fontSize : 12,
										fontFamily : 'MicrosoftYaHei'
									}
								},
							},
						}

				]
			};
			myChart.setOption(industryAddedOption);
		}
	});
}

service层方法:


/**
	 * 获取经济指标统计图数据
	 * 
	 * @param statisticalYear
	 * @return
	 */
	@Override
	public Map<String, Object> getEconomicsEcharts(String statisticalYear) {

		Map<String, Object> data = new HashMap<String, Object>();
		List<EconomicsNorm> list = economicsNormDao
				.fingEconomicsInfo(statisticalYear);
		if (list != null && list.size() != 0) {
			int countTimes = getCountTimes(list.size());
			String[] xAxisArray = new String[countTimes];
			String[] legendArr = new String[] { "2010", "2015" };
			String[] firstArr = new String[countTimes];
			for (int i = 0; i < countTimes; i++) {
				xAxisArray[i] = list.get(list.size() - countTimes + i)
						.getNormName();
				firstArr[i] = list.get(list.size() - countTimes + i)
						.getNormValue();
			}
			data.put("xAxisArr", xAxisArray);
			data.put("dataArr", firstArr);
			data.put("legendArr", legendArr);
		} else {
			data.put("xAxisArr", new String[0]);
			data.put("dataArr", new Double[0][0]);
			data.put("legendArr", new String[0]);
		}
		return data;
	}



结果:











  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里是一个简单的 Echarts 动态加载柱状图的实例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Echarts动态加载柱状图的实例</title> <!-- 引入 Echarts 的主文件 --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <!-- 定义一个 DOM 节点作为图表容器 --> <div id="chart" style="width: 600px; height: 400px;"></div> <script> // 初始化图表 var chart = echarts.init(document.getElementById('chart')); // 定义初始数据 var data = [10, 20, 30, 40, 50]; // 定义图表的配置项和数据 var option = { title: { text: '动态加载柱状图' }, xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: { type: 'value' }, series: [ { name: '数据', type: 'bar', data: data } ] }; // 使用刚指定的配置项和数据显示图表 chart.setOption(option); // 模拟异步加载数据 setTimeout(function() { // 更新数据 data = [20, 30, 40, 50, 60]; // 更新图表 chart.setOption({ series: [ { data: data } ] }); }, 2000); </script> </body> </html> ``` 在这个例子中,我们首先定义了一个 `div` 元素作为图表容器,然后使用 `echarts.init` 方法初始化了一个 Echarts 实例,并定义了初始数据和图表的配置项。接着,我们使用 `chart.setOption` 方法将配置项和数据应用到图表中,显示出了一个初始的柱状图。 接下来,我们使用 `setTimeout` 方法模拟异步加载数据的过程,并更新了数据。最后,我们再次使用 `chart.setOption` 方法更新了图表的数据,这样就实现了动态加载柱状图的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值