我正在使用jqPlot在某些网页上显示许多图表。我希望能够将这些图表保存到图像文件中。
最好的方法是什么?是否可以在图表上使用右键菜单选项,以便将图表保存到图像文件中?
以下是我的一张图表的代码:
var plotCogsLineGraph = $.jqplot('FinancialsLineGraph', [[30,31,34,40,45], [34,38,31,42,38]],
{
axes:
{
xaxis:
{
ticks: ['5','4','3','2','1']
},
yaxis:
{
label:'%',
pad: 1.05,
ticks: ['0','15','30','45','60']
}
},
width: 480, height: 270,
legend:{show:true, location: 's', placement: 'insideGrid', renderer: $.jqplot.EnhancedLegendRenderer},
seriesDefaults:
{
rendererOptions: {smooth: true}
},
series:[
{
lineWidth:1,
label:'COGS',
markerOptions: { size:1, style:'dimaond' }
},
{
lineWidth:1,
label:'Wages',
markerOptions: { size: 1, style:"dimaond" }
}
]
}
);
需要在上面的代码中添加什么才能将图表保存到图像文件?
答案 0 :(得分:8)
试试这个:
$('#FinancialsLineGraph').jqplotSaveImage()
答案 1 :(得分:2)
假设您的情节正在绘制一个带有“情节”ID的div。
您必须应用本机jqplotToImageStr({})
函数才能将绘图转换为图像。
然后你可以填充另一个div(例如id ='graphicImage')来显示这个新生成的图像:
var graphicImage = $('#graphicImage');
if(graphicImage.html() == ""){ //If the image was even generated, don't generate it again
var divGraph = $('#plot').jqplotToImageStr({});
var divElem = $('<img/>').attr('src', divGraph);
graphicImage.html(divElem);
}
要下载图像,您可以执行以下操作:
open(divGraph.toDataURL("image/png"));
在我的情况下,由于我的计算机上下载的图像已损坏,因此效果不佳。 如果你找到一种方法来保存它,我会很高兴听到它。
无论如何,一旦你完成了这个答案的第一部分(用'jcplot对应的图像填充'#graphicImage'div),你可以通过右击它来保存它...
答案 2 :(得分:1)
Collection <__NSDictionaryM: 0x16784ff0> was mutated while being enumerated.
但请注意,如果您在刻度线上应用了一些自定义样式,则不会将其保存到图像