我使用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)
但这些都没有给我正确的价值。
是否有人知道如何使这项工作,或另一种保存放大图表的方法? 谢谢!
答案 0 :(得分:0)
我使用
开始工作cli.getVAxisValue(cli.getChartAreaBoundingBox().top+cli.getChartAreaBoundingBox().height)
我没有意识到这个位置是从顶部计算的,而不是从底部计算的。