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")

效果展示:

相关推荐
漂流瓶jz6 分钟前
Webpack中各种devtool配置的含义与SourceMap生成逻辑
前端·javascript·webpack
这是个栗子9 分钟前
【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法
javascript·vue.js·pnpm·eslint
前端架构师-老李17 分钟前
React 中 useCallback 的基本使用和原理解析
前端·react.js·前端框架
木易 士心1 小时前
CSS 中 `data-status` 的使用详解
前端·css
明月与玄武1 小时前
前端缓存战争:回车与刷新按钮的终极对决!
前端·缓存·回车 vs 点击刷新
牧马少女1 小时前
css 画一个圆角渐变色边框
前端·css
zy happy1 小时前
RuoyiApp 在vuex,state存储nickname vue2
前端·javascript·小程序·uni-app·vue·ruoyi
小雨青年2 小时前
Cursor 项目实战:AI播客策划助手(二)—— 多轮交互打磨播客文案的技术实现与实践
前端·人工智能·状态模式·交互
Nan_Shu_6142 小时前
学习:JavaScript(5)
开发语言·javascript·学习
533_2 小时前
[vue3] h函数,阻止事件冒泡
javascript·vue.js·elementui