Я использую Google Charts для создания линейной диаграммы, и я использую
explorer: {actions: ['dragToZoom', 'rightClickToReset']
чтобы пользователь мог увеличить ограничивающую рамку. Я хотел бы иметь возможность сохранить увеличенное изображение в формате PNG. Для этого я пытаюсь найти значения HAxis на левом и правом краях диаграммы и значения VAxis на верхнем и нижнем краях диаграммы:
var cli = chart.getChartLayoutInterface();
var hl = cli.getHAxisValue(cli.getChartAreaBoundingBox().left);
var hr = cli.getHAxisValue(cli.getChartAreaBoundingBox().left + cli.getChartAreaBoundingBox().width);
var vt = cli.getVAxisValue(cli.getChartAreaBoundingBox().top);
var vb = ??
Затем я использую их в своих опциях, чтобы перестроить диаграмму с этими ограничениями:
var options = {
width: 1430,
height: 563,
hAxis: {
title: 'X-Axis',
viewWindow: { min: hl, max: hr}
},
explorer: {actions: ['dragToZoom', 'rightClickToReset'], keepInBounds: true, maxZoomIn: .01 },
curveType: "function",
vAxis: {
logScale: log1,
title: "Y-Axis",
titleTextStyle: {color: '#0000FF'},
textStyle: {color: '#0000FF'},
baselineColor: '#0000FF',
viewWindow: { min: vb, max: vt}}
},
title: "Figure 1"
};
var chart = new google.visualization.LineChart(document.getElementById('plot'));
chart.draw(data, options);
drawpng = chart.getImageURI();
return drawpng;
Мои значения для левого, правого и верхнего края работают правильно, но я не могу понять, как определить нижний край. я уже пробовал
var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().top - cli.getChartAreaBoundingBox().height)
а также
var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().height)
а также
var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().height - cli.getChartAreaBoundingBox().top)
но ни один из них не дает мне правильное значение.
Кто-нибудь знает, как это сделать, или другой способ сохранить увеличенную диаграмму? Спасибо!