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