Charts 谷歌图表:如何触发2';就绪';事件处理功能是否同步?
我使用Google charts绘制折线图,并使用2个就绪事件处理程序函数,如下所示:Charts 谷歌图表:如何触发2';就绪';事件处理功能是否同步?,charts,google-visualization,linechart,Charts,Google Visualization,Linechart,我使用Google charts绘制折线图,并使用2个就绪事件处理程序函数,如下所示: AlignTitle:将标题与中心对齐 CreateImageToExport:将图形转换为图像(使用getImageURI()) 问题是这样形成的图像包含左对齐的标题(未反映function1所做的更改) 同样的道理 javascript代码: function drawBackgroundColor() { var data = new google.visualization.Dat
function drawBackgroundColor() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'X');
data.addColumn('number', 'Dogs');
data.addRows([
[0, 0], [1, 10], [2, 23], [3, 17], [4, 18], [5, 9],
[6, 11], [7, 27], [8, 33], [9, 40], [10, 32], [11, 35],
[12, 30], [13, 40], [14, 42], [15, 47], [16, 44], [17, 48],
[18, 52], [19, 54], [20, 42], [21, 55], [22, 56], [23, 57],
[24, 60], [25, 50], [26, 52], [27, 51], [28, 49], [29, 53],
[30, 55], [31, 60], [32, 61], [33, 59], [34, 62], [35, 65],
[36, 62], [37, 58], [38, 55], [39, 61], [40, 64], [41, 65],
[42, 63], [43, 66], [44, 67], [45, 69], [46, 69], [47, 70],
[48, 72], [49, 68], [50, 66], [51, 65], [52, 67], [53, 70],
[54, 71], [55, 72], [56, 73], [57, 75], [58, 70], [59, 68],
[60, 64], [61, 60], [62, 65], [63, 67], [64, 68], [65, 69],
[66, 70], [67, 72], [68, 75], [69, 80]
]);
var options = {
title: 'Popularity',
hAxis: {
title: 'Time'
},
vAxis: {
title: 'Popularity'
},
backgroundColor: '#f1f8e9'
};
var vLeftMargin = '400';
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', AlignTitle);
//Function to tilt the label
function AlignTitle()
{
$('#chart_div').find("text:contains(" + options.title + ")").attr({'x': vLeftMargin});
}
//Add function to export
CreateImageToExport (chart,
'chart_div',
1000,
300);
chart.draw(data, options);
}
//Function to create image to export
function CreateImageToExport(pChart,
pDiv,
pWidth,
pHeight)
{
google.visualization.events.addListener(pChart, 'ready', function ()
{
$('#' + pDiv + '_Export').remove();
var vExportedImage = document.createElement("img");
vExportedImage.src = pChart.getImageURI();
vExportedImage.width = pWidth;
vExportedImage.height = pHeight;
vExportedImage.id = pDiv + '_Export';
document.getElementById('divImageCharts').appendChild(vExportedImage);
});
}
我想在标题对齐后将图形转换为图像。任何建议都会有帮助。谢谢,您可以在同一个
'ready'
事件中将两者结合起来,以确保首先对齐
google.visualization.events.addListener(chart, 'ready', function () {
AlignTitle();
CreateImageToExport(chart, 'chart_div', 1000, 300);
});
但是,这并不能解决问题,getImageURI
不包括绘制图表后对其所做的修改
要使用自定义mods获取图像,可以使用
查看此小提琴以了解工作示例…(由于某些原因,html2canvas在stackoverflow代码段中不起作用)WhiteHat你知道有没有办法让这段代码在IE上运行吗?
function CreateImageToExport(chartContainer, pWidth, pHeight) {
html2canvas(chartContainer, {
allowTaint: true,
taintTest: false
}).then(function(canvas) {
var browserIsIE = false || !!document.documentMode;
var domURL = window.URL || window.webkitURL || window;
var imageURI;
if (browserIsIE) {
imageURI = domURL.createObjectURL(canvas.msToBlob(), {type: 'image/png'});
} else {
imageURI = canvas.toDataURL('image/png');
}
$('#' + chartContainer.id + '_Export').remove();
var vExportedImage = document.createElement('img');
vExportedImage.src = imageURI;
vExportedImage.width = pWidth;
vExportedImage.height = pHeight;
vExportedImage.id = chartContainer.id + '_Export';
document.getElementById('divImageCharts').appendChild(vExportedImage);
});
}