echarts 数据导出-导出外部数据并使用echarts进行绘制

2023-08-21 0 4,163 百度已收录

首先,您需要在 Django 中定义一个视图函数,该函数从数据库读取要显示的数据并将其传递给模板模板中可以使用Echarts的JavaScript库来绘制图表。 模板中需要导入Echarts的JavaScript文件,并在JavaScript代码中定义一个DOM元素作为图表容器。 然后,在JavaScript代码中使用AJAX技术向视图函数发送请求以获取数据。 一般来说echarts 数据导出,可以使用jQuery的AJAX方法来发出请求。 请求成功后,可以将数据传递给Echarts的初始化函数,生成相应的图表。 最后,需要将模板渲染成 HTML 页面,并将生成的图表显示在页面上。 下面是一个简单的示例代码: 在 Django 中定义一个视图函数: ```pythonfromdjango.shortcutsimportrenderfrommyapp.modelsimportMyModeldefchart_data(request):data=MyModel.objects.all() returnrender(request,'chart.html',{'data' : data})```在模板中引入Echarts的JavaScript文件,并定义一个DOM元素作为图表容器:```html{%extends"base.html"%}{%blockcontent%}{%endblock%} { %blockscripts%}{%endblock%}``` 这里使用 jQuery 的 AJAX 方法向视图函数 `chart_data` 发送 GET 请求来获取数据。 请求成功后echarts 数据导出,将数据传递给Echarts的初始化函数,并设置相应的图表选项。 最后,在 HTML 页面中显示图表。

用法:

1、echartsContainer对应到echarts的容器id;

2、exportOut()绑定导出按钮即可。

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------

2017年8月9日上午更新

借助画布导入多张图片。 同样在exportOut中调用drawOnCanvas(dataurl, dataurl1, dataurl2)echarts 保存按钮,其中括号内有3个dataurl值。

/**
 * 将canvas画布导出为图片
 */
function canvasToImageIpal(type) {
    var canvas = document.getElementById("canvasipal");
    var imgdata = canvas.toDataURL(type);
    var fixtype = function (type) {
        type = type.toLocaleLowerCase().replace(/jpg/i, 'jpeg');
        var r = type.match(/png|jpeg|bmp|gif/)[0];
        return 'image/' + r;
    }
    imgdata = imgdata.replace(fixtype(type), 'image/octet-stream')
    var saveFile = function (data, filename) {
        var link = document.createElement('a');
        link.href = data;
        link.download = filename;
        var event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        link.dispatchEvent(event);
    }
    var filename = ccode + "展示" + '.' + type;
    saveFile(imgdata, filename);
}
function drawOnCanvas(dataurl, dataurl1, dataurl2) {
    var canvas = document.getElementById("canvasipal");
    var Gc = canvas.getContext("2d");
    var drawImg = new Image();
    drawImg.src = dataurl;
    drawImg.onload = function () {
        draw(this);
    };
    function draw(obj) {
        Gc.drawImage(obj, 0, 0, 600, 300);
    };
    var drawImg1 = new Image();
    drawImg1.src = dataurl1;
    drawImg1.onload = function () {
        draw1(this);
    };
    function draw1(obj) {
        Gc.drawImage(obj, 0, 300, 300, 300);
        var type = 'png';
    };
    var drawImg2 = new Image();
    drawImg2.src = dataurl2;
    drawImg2.onload = function () {
        draw2(this);
    };
    function draw2(obj) {
        Gc.drawImage(obj, 300, 300, 300, 300);
        var type = 'png';
        canvasToImageIpal(type);
    };
}

-------------------------------------------------- -------------------------------------------------- ----------------------------

2017.9.26更新

html中canvas的定义:

导入按键绑定函数:

function exportOut() {
    var myCharts = echarts.init(document.getElementById('echartsContainer'));
    var dataurl = myCharts.getDataURL();
    var myCharts1 = echarts.init(document.getElementById('echartsContainer1'));
    var dataurl1 = myCharts1.getDataURL();
    var myCharts2 = echarts.init(document.getElementById('echartsContainer2'));
    var dataurl2 = myCharts2.getDataURL();
    drawOnCanvas(dataurl, dataurl1, dataurl2);
    return;
}

阐明:

1. Canvas定义在table中echarts 保存按钮,默认隐藏。

2、导出按钮绑定函数中的id是echars容器对应的div的id。

3.仅兼容chrome49及以上版本。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 echarts echarts 数据导出-导出外部数据并使用echarts进行绘制 https://www.wkzy.net/game/138872.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务