如何解决高图-图表的导出当前状态
| Highcharts的导出方法根据用户的交互使用图表的初始状态,而不是最新状态。如果显示/隐藏某些系列,然后导出图表,您仍然会获得所有系列,而不是图表实际显示的内容。var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: \'chart\',defaultSeriesType: \'line\',},title: {
text: \'Expression Profile\',subtitle: {
text: \'Reference: act\'
},xAxis: {
categories: [\'14das-seedling\',\'25das-aerial\',\'35das-aerial\',\'42das-rosette\',\'42das-stem\',\'53das-stem\',\'53das-inflores\'],title: {
text: \'Development stages\',margin:20
}
},yAxis: {
title: {
text: \'Log10 act\'
},plotLines: [{
value: 0,width: 1,color: \'#808080\'
}]
},legend: {
margin:20
},tooltip: {
formatter: function() {
return \'<b>mir\'+ this.series.name +\'</b><br/>\'+
this.x +\' <br/>log10:\'+ this.y ;
}
},series: [
{
name: \'156a\',data: [-2.75607,-3.41066,-4.10053,-4.63856,-4.73462,-4.6145,-3.90987]
},{
name: \'156b\',data: [-4.15935,-6.54969,-6.70229,-5.80646,-5.68092,-5.38481,-5.96406]
},{
name: \'156c\',data: [-4.83317,-5.52142,-4.94995,-5.47179,-4.97123,-4.86163,-5.12806]
},{
name: \'156d\',data: [0,-5.93499,-5.41856,-5.88918,-6.70304,-5.69335,-5.39792]
},{
name: \'156e\',data: [-4.0707,-6.1185,-6.58353,-6.17734,-6.84433,-5.4114,-5.37817]
},{
name: \'156f\',data: [-3.97561,-5.02619,-5.67834,-5.65722,-5.76238,-4.51125,-5.30344]
},{
name: \'156g\',data: [-3.81589,-2.50758,-2.41623,-3.63983,-3.73004,-2.90055,-3.61997]
},{
name: \'156h\',data: [-4.31169,-5.74017,-5.55419,-5.26679,-5.01009,-4.99596,-5.68062]
}
]
});
});
这是我的小提琴:http://jsfiddle.net/sherlock85/safKs/
是否可以导出图表的当前状态?
任何帮助,将不胜感激。
解决方法
对我来说,即使我修改图表,也要导出最新状态。我想如果您在修改后执行chart.redraw(),它将导出最新状态。也请尝试升级到最新版本的highcharts。
,此问题已在Highcharts的2.1.5版本中修复。我相信下面看到的变更日志中的评论可以解决您的问题。
现在,导出的图表会遵循用户设置的缩放和可见性选项后的最小值和最大值。
,如果您在图表中使用了以下代码,问题仍然存在:
chart = new Highcharts.Chart({
chart: {
...,events: {
load: function(event) {
this.series.forEach(function(d,i){if(d.options.id==1)d.hide()})
}
}
},...
这段代码负责最初在图形中隐藏系列(在此示例中,id == 1)。似乎具有无法导出图形当前状态的负面影响。
删除它,并解决了最初的问题。
如果您仍然想保留数据系列的“初始隐藏”,并且例如使用AJAX(和jQuery)来获取数据,请改用以下类型的代码:
$.ajax({
type: \"GET\",url: myURL,data: {data: myData},dataType: \'json\',success: function(data) {
chart.series[0].setData(data[0],true);
chart.series[1].setData(data[1],true);
},complete: function(jqXHR,textStatus) {
chart.series[1].hide();
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。