今日、jqPlot の最新バージョンをダウンロードして Plot にデータを入力したところ、DateAxisRenderer の「ハングアップ」問題が発生しました。少なくとも、これが問題かもしれないと思います。
この修正プログラム (http://www.cefolger.net/2012/02/jqplot-crashhanginfinite-loop-in.html) を挿入しようとしましたが、まだ機能していません。
私のセットアップは次のとおりです。
<div id="history_chart" stlye="height: 300px; width: 500px;">
</div>
<script type="text/javascript">
$(function(){
var history_data = <?php echo json_encode($history_data); ?>;
var historyDataRenderer = function(){
console.log(history_data);
return history_data;
}
var history_plit = $.jqplot('history_chart',[], {
title: "Tarifhistorie",
dataRenderer: historyDataRenderer,
axes: {
xaxis:{
renderer: $.jqplot.DateAxisRenderer,
tickOptions: '%e.%#m.%Y (%#H:%#M:%#S)'
},
yaxis:{}
}
});
});
</script>
私が通過するデータ:
[["29.02.2012 16:11", "1"], ["26.03.2012 15:56", "2"], ["26.03.2012 15:57", "6"], ["26.03.2012 15:57", "1"], ["27.03.2012 11:33", "3"], ["27.03.2012 11:36", "1"], ["27.03.2012 11:36", "3"], ["27.03.2012 11:36", "2"], ["27.03.2012 11:36", "1"], ["28.03.2012 11:35", "1"], ["28.03.2012 11:38", "1"], ["28.03.2012 11:59", "1"], ["28.03.2012 12:03", "1"]]
リスト形式:
- 29.02.2012 16:11,1
- 26.03.2012 15:56,2
- 26.03.2012 15:57,6
- 26.03.2012 15:57,1
- 27.03.2012 11:33,3
- 27.03.2012 11:36,1
- 27.03.2012 11:36,3
- 27.03.2012 11:36,2
- 27.03.2012 11:36,1
- 28.03.2012 11:35,1
- 28.03.2012 11:38,1
- 28.03.2012 11:59,1
- 28.03.2012 12:03,1
tickOptions を削除して history_data を直接追加 + history_data の周りに括弧を追加すると機能しますが、日付のティックが 4 日間であり、より正確なティックが必要なため、あまり満足できません。
<script type="text/javascript">
$(function(){
$.jqplot.config.enablePlugins = true;
var history_data = <?php echo json_encode($history_data); ?>;
var historyDataRenderer = function(){
//console.log(history_data);
for(var i=0;i<history_data.length;i++){
var randString = (""+Math.random(1568));
history_data[i][0] = history_data[i][0] + ":"+randString.substring(2, 4);
}
console.log(history_data);
return history_data;
}
historyDataRenderer();
var history_plot = $.jqplot('history_chart', [history_data], {
title: "Tarifhistorie",
/*dataRenderer: historyDataRenderer,*/
axes: {
xaxis:{
renderer: $.jqplot.DateAxisRenderer
},
yaxis:{
min: 0,
max: 10
}
},
highlighter: {
show: true,
sizeAdjust: 7.5
},
cursor: {
show: false
}
});
});
</script>