Я пытаюсь экспортировать динамически сгенерированную диаграмму, и я заметил, что некоторые вещи не экспортируются. Например, моя диаграмма имеет 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);
}
});
}
К сожалению, заголовок, полосы сюжета и "пользовательский текст" не отображаются, если пользователь экспортирует диаграмму.