微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – HighCharts – 如何创建导出EVERYTHING的动态图表

我试图导出一个动态生成的图表,我注意到有些事情没有被导出.例如,我的图表有PlotBands,它们是动态的,具体取决于显示的数据.

当我建立我的图表时,我遵循所有伟大的HighChart示例的标准代码布局,我立即在文档加载上生成图表.然后在我的代码中,我使用Ajax调用来加载数据并修改标题,绘图带,自定义文本等.

问题是在初始图表加载后在图表上修改的任何内容都不会导出到图像或PDF.我的PlotBands在Ajax调用期间被添加.它们不能包含在构建在document.load()上的图表对象中.所以他们被HighCharts方便地忽略了.

在我的图表中,我想在24小时内显示不同地点的能源使用情况.用户可以选择不同的日期和不同的网站.需要强调运行时间和每个站点的情节条带具有加载数据的不同运行时间.此外,图表标题显示站点名称,字幕显示平方英尺.

此外,我的代码使用HighCharts renderer text()命令在图形底部绘制一些自定义文本.

我的几乎不起作用的导出的代码看起来像这样:

var chart;
$(document).ready(function() {
    chart = new Highcharts.Chart({
        chart: {
            renderTo: "ChartContainer",type: "line",title: { text: null },subtitle: { text: null }
        }
    }
});

function UpdateChart() {
    $.ajax({
        url: "/my/url.PHP",success: function(json) {
            chart.addSeries(json[1]);
            chart.addSeries(json[2]);
            chart.setTitle(json[0].title,json[0].subtitle);
            chart.xAxis[0].addplotBand({ color: "#FCFFB9",from: json[0].OpenInterval,to: json[0].CloseInterval,label: { text: "Operating Hours",verticalAlign: "bottom",y: -5,style: { fontSize: "8pt",color: "gray" } } });
            chart.renderer.text("Custom Text",50,100);
        }
    });
}

不幸的是,如果用户导出图表,标题,情节乐队和“自定义文本”将不会出现.

是的 – 它的可能和高图支持在这里提到的动态高图的示例代码 http://jsfiddle.net/vijaykumarkagne/9c2vqq7q/,使用谷歌驱动器中托管的文件的json数据.
$.getJSON("https://b943d995d961c8938d74bf398f8748e2b34864c6.googledrive.com/host/0B_i_hw1oG1HeaU9nMWxfTnJZd1k/data.json",{format:"json"},function(result){
     
               
chart = new Highcharts.Chart({
        chart: {
            zoomType: 'x',type: 'line',renderTo: 'container'
        },title: {
            text: ' '
        },subtitle: {
            text: 'Click and drag in the plot area to zoom in',x: -20
        },xAxis: {
            type: 'datetime',title: {
                text: ' '
            }

        },yAxis: {
            title: {
                text: ' '
            }
        },series:[{
            name: 'Tokyo',data: result
        }]

     });
        });
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://b943d995d961c8938d74bf398f8748e2b34864c6.googledrive.com/host/0B_i_hw1oG1HeaU9nMWxfTnJZd1k/dataEmp.json"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/drilldown.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<body>
<div id="container"></div>
</body>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但是在某些特殊情况下,我们可能还需要使用IE6来访问网页。而在IE6中,我们通常会使用JavaScript来提交表单,来看一下具体操作。
PHP中的count()函数是用来计算数组或容器中元素的个数。这个函数十分方便,在编写代码时使用频率也非常高。无论你是要统计数组的长度、统计字符串中字符出现的次数还是统计对象中属性的个数,count()都可以帮助你轻松
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不刷新整个页面的情况下,向服务器发送请求并接收响应。通常来说,我们使用 AJAX 请求是为了获取后台数据,并将其展示在前端页面上。然而,有时候我们只需要
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页用户体验的技术,通过与服务器进行异步通信,实现在网页上局部刷新数据而不必整个页面刷新的功能。在实际开发中,我们经常需要从服务器端下载文件,而传统
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以在不刷新整个页面的情况下,向服务器发送请求并获取响应数据。在某些场景下,我们需要通过AJAX下载Excel文件流,以便于在前端使用或保存到本地。本文将详
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax,我们可以在不刷新整个页面的情况下向服务器发送请求并获得响应数据。而在Ajax的基础上,.get和.post是两种常用的请求方法,它们分别用于发送GET和POST请
AJAX(Asynchronous JavaScript and XML)是一种在网页上实现异步数据传输的技术。通过AJAX,网页可以在不刷新整个页面的情况下与服务器进行数据交互,提升用户体验和页面性能。在实际应用中,AJAX广泛用于表单提交、
在使用Ajax下拉加载数据的过程中,有时候会出现无法取到360度的问题。这个问题可能是由于代码逻辑的问题导致的,也有可能是网络延迟引起的。为了解决这个问题,我们需要对代码进行仔细排查,并且在合适的地方添加适当
本文将介绍Ajax和.post之间的区别。Ajax是一种用于在网页上进行异步通信的技术,能够在不刷新整个页面的情况下更新部分页面内容。.post是jQuery中的一个方法,用于向服务器发送POST请求。虽然它们都可以用于发送异步
AJAX(Asynchronous JavaScript and XML)是一种在Web页面上进行异步数据请求和交互的技术。它的出现使得页面在后台与服务器进行数据交互的同时,不需要重新加载整个页面。在网页开发中,常常需要实现文件上传功能,