我正在尝试导出一个动态生成的图表,但是我注意到有些东西没有被导出。例如,我的图表有PlotBands,这是根据显示的数据动态生成的。
在构建图表时,我遵循了所有伟大的HighChart示例的标准代码布局,在文档加载后立即生成了图表。然后在我的代码中稍后,我使用Ajax调用来加载数据并修改标题、绘图带、自定义文本等内容。
问题是,初始图表加载后对图表进行的任何修改都不会导出为图像或PDF。我的PlotBands是在Ajax调用期间添加的。它们无法包含在在document.load()
上构建的图表对象中。所以它们被HighCharts方便地忽略了。
在我的图表中,我想展示不同站点24小时内的能源使用情况。用户可以选择不同的日期和不同的站点。绘图带需要突出显示运营时间,每个站点的运营时间都随数据一起加载。另外,图表标题显示站点名称,副标题显示平方英尺。
此外,我的代码使用HighCharts渲染器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);
}
});
}
很不幸,如果用户导出图表,标题、数据带区间和“自定义文本”将不会显示。