Echarts多图表动态更新示例

前端框架(html、echarts、jquery)

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>echarts多图表动态更新示例</title>
		<script src="jquery.min.js"></script>
		<script type="text/javascript" src="echarts.min.js"></script>
	</head>
	<body>
		<div id="mainPie" style="width: 600px;height:400px;"></div>
		<div id="mainBar" style="width: 600px;height:400px;"></div>
		<script type="text/javascript">
			// 基于准备好的dom,初始化echarts实例
			var pieChart = echarts.init(document.getElementById('mainPie'));
			var barChart = echarts.init(document.getElementById('mainBar'));
			
			// 指定图表的配置项和数据
			var pieOption = {
			    title: {
			        text: '某电商平台销售数据分析',
			        subtext: '饼图',
			        left: 'center'
			    },
			    tooltip: {
			        trigger: 'item'
			    },
			    legend: {
			        orient: 'vertical',
			        left: 'left'
			    },
			    series: [
			        {
			            type: 'pie',
			            radius: '50%',
			            data: [],
			            emphasis: {
			                itemStyle: {
			                    shadowBlur: 10,
			                    shadowOffsetX: 0,
			                    shadowColor: 'rgba(0, 0, 0, 0.5)'
			                }
			            }
			        }
			    ]
			};
			
			var barOption = {
			    title: {
			        text: '某电商平台销售数据分析',
			        subtext: '柱形图',
			        left: 'center'
			    },
			    tooltip: {
			        trigger: 'axis'
			    },
			    
			    xAxis: {
			        type: 'category',
			        data: []
			    },
			    yAxis: {
			        type: 'value'
			    },
			    series: [
			        {
			            
			            type: 'bar',
			            data: []
			        }
			    ]
			};
			
			// 使用刚指定的配置项和数据显示图表。
			pieChart.setOption(pieOption);
			barChart.setOption(barOption);
			
			// 异步加载数据
			function fetchData() {
			    $.ajax({
			        url: 'api/echarts/pie/', // 替换成你的饼图数据接口
			        type: 'GET',
			        dataType: 'json',
			        success: function(pieData) {
			            // 填入数据
			            pieChart.setOption({
			                series: [{
			                    // 根据名字对应到相应的系列
			                    name: 'Access Source',
			                    data: pieData
			                }]
			            });
			        }
			    });
			
			    $.ajax({
			        url: 'api/echarts/bar/', // 替换成你的柱状图数据接口
			        type: 'GET',
			        dataType: 'json',
			        success: function(barData) {
			            // 填入数据
			            barChart.setOption({
			                xAxis: {
			                    data: barData.categories
			                },
			                series: [{
			                    // 根据名字对应到相应的系列
			                    name: 'Sales',
			                    data: barData.values
			                }]
			            });
			        }
			    });
			}
			
			// 每隔一段时间刷新数据
			setInterval(fetchData, 5000); // 5000毫秒,即5秒钟
		</script>
	</body>
</html>

后端框架(django)

python 复制代码
from django.http import HttpResponse
import json

#饼图
def EchartsPie(request):
    data = []
    names = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    values = [50, 20, 36, 10, 10, 20]
    for i in range(len(names)):
        res = {}
        res['name'] = names[i]
        res['value'] = values[i]
        data.append(res)
    return HttpResponse(json.dumps(data), content_type="application/json")

#柱状图
def EchartsBar(request):
    data = {}
    categories = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    values = [50, 20, 36, 10, 10, 20]
    data['categories'] = categories
    data['values'] = values
    return HttpResponse(json.dumps(data), content_type="application/json")

效果展示:

相关推荐
ufosuai5553 小时前
HTML基本语法
前端·html
慕斯-ing4 小时前
Vue指令v-on
前端·vue.js·经验分享
树毅vs素忆5 小时前
chrome浏览器chromedriver下载
前端·chrome
三月七(爱看动漫的程序员)9 小时前
模型/O功能之提示词模板
java·前端·javascript·人工智能·语言模型·langchain·prompt
LCG元9 小时前
Vue.js组件开发-实现左侧浮动菜单跟随页面滚动
前端·javascript·vue.js
山海青风10 小时前
OpenAI 实战进阶教程 - 第四节: 结合 Web 服务:构建 Flask API 网关
前端·人工智能·python·chatgpt·flask
关山月11 小时前
JS开发者应该了解的函数方法
前端
engchina11 小时前
深入理解 `box-sizing: border-box;`:CSS 布局的利器
前端·css·css3
cmdyu_12 小时前
前端架构师的职责之我见
前端
小郑T_T12 小时前
浏览器模块化难题
前端·javascript