Próbuję wyeksportować dynamicznie generowany wykres i zauważyłem, że niektóre rzeczy nie są eksportowane. Na przykład, mój wykres ma PlotBands, które są dynamiczne w zależności od wyświetlanych danych.HighCharts - Jak utworzyć dynamiczny wykres eksportujący WSZYSTKO
Podczas tworzenia wykresu postępowałem zgodnie ze standardowym układem kodu wszystkich wspaniałych przykładów HighChart, w których wygenerowałem wykres natychmiast po załadowaniu dokumentu. Następnie w moim kodzie używam wywołania Ajax do ładowania danych i modyfikowania takich rzeczy jak tytuły, paski fabularne, niestandardowy tekst, itp.
Problem polega na tym, że wszystko zmodyfikowane na wykresie po początkowym wczytaniu wykresu nie będzie być eksportowane do obrazów lub plików PDF. Moje PlotBands zostały dodane podczas połączenia Ajax. Nie można ich uwzględnić w obiekcie wykresu, który został zbudowany pod numerem document.load()
. Byli więc wygodnie ignorowani przez HighCharts.
Na wykresie chcę pokazać zużycie energii w ciągu 24 godzin w różnych lokalizacjach. Użytkownik może wybrać różne dni i różne witryny. Pasma wydruku musiały podświetlać godziny pracy, a każda strona ma różne godziny pracy, które są załadowane danymi. Również tytuł wykresu pokazuje nazwę strony, a podtytuł pokazuje kwadratowy materiał.
Dodatkowo mój kod rysuje niestandardowy tekst na dole wykresu za pomocą polecenia renderowania HighCharts text()
.
Mój kod na ledwo funkcjonującego eksportu wygląda mniej więcej tak:
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);
}
});
}
Niestety, tytuł, zespoły działka i „custom text” nie pojawi się, jeśli użytkownik eksportuje wykres.
Czy możesz zawęzić problem? –
Przepraszam, jeśli nie byłam jasna. To nie problem. Jest to rozwiązanie, które chciałem udostępnić moim StackMates, jeśli szukają tutaj tego samego problemu, który miałem: eksportowanie HighCharts do pracy zgodnie z oczekiwaniami w pewnych okolicznościach. –
To bardzo dobra myśl. Jesteś bardzo mile widziany. W takim przypadku wspomniałeś o problemie, a SO pozwala użytkownikom odpowiedzieć na własny post. Możesz odpowiadać na swoje posty. –