RickshawJS でさまざまなデータをグラフ化しています。しかし、ユーザーが#search
ボタンをクリックしたときにグラフを更新する方法が必要です。現在、古いチャートの下に新しいチャートを作成するだけで、かなり面倒です。
ユーザーはページに入り、いくつかの詳細を入力し、ボタンをクリックしてチャートを作成します。理想的には、表示されていない空のチャートから始めたいのですが、チャートと軸からデータを削除してから更新する方法が本当にわかりません。
$('#chart svg').remove();
チャートと軸を呼び出すことはできましたが、面倒です。
$('#search').click(function(event){
event.preventDefault();
var data = utils.malletData();
var graph = new Rickshaw.Graph( {
element: document.querySelector("#chart"),
width: 800,
height: 250,
series: [ {
name: data['name'],
color: 'steelblue',
data: data['series']
} ]
} );
graph.render();
var hoverDetail = new Rickshaw.Graph.HoverDetail( {
graph: graph,
xFormatter: function(x) {
var date = new Date(x).getTime();
return moment(x).format('MMMM Do YYYY, h:mm:ss a');
},
yFormatter: function(y) { return Math.floor(y) + " users" }
} );
var xAxis = new Rickshaw.Graph.Axis.X( {
graph: graph,
orientation: 'bottom',
element: document.getElementById('x_axis'),
tickFormat: function(x) { return moment(x).fromNow(); },
ticks: 7,
tickSize: 1,
} );
xAxis.render();
var ticksTreatment = 'glow';
var yAxis = new Rickshaw.Graph.Axis.Y( {
graph: graph,
orientation: 'left',
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
ticksTreatment: ticksTreatment,
element: document.getElementById('y_axis'),
} );
yAxis.render();
});