gpt4 book ai didi

javascript - Highcharts重绘前一行仍然存在

转载 作者:行者123 更新时间:2023-11-28 01:56:50 25 4
gpt4 key购买 nike

我正在使用Highstock绘制曲线,我的页面中有一个下拉列表,当我选择其中一个时,它会显示相应的曲线。默认它会显示默认值的曲线,但是当我选择另一条时,它会显示默认值的曲线。将显示较新的曲线,但以前的曲线仍然存在。为什么?这是我的代码:

<script type="text/javascript" src='@Url.Content("~/Scripts/jquery-1.6.min.js")'></script>
<script src='@Url.Content("~/Scripts/highstock.js")' type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/exporting.js")'type="text/javascript"></script>

<div id="T">
</div>

<script type="text/javascript">
var T_chart;
var T_options;
var T1_data = [];
var T2_data = [];

$(document).ready(function () {
draw_chart();

$('#search').click(function () {
redraw_chart();
});

Highcharts.setOptions({
lang: {
rangeSelectorFrom: 'From',
rangeSelectorTo: 'To',
rangeSelectorZoom:'Range'
},
global: {
useUTC: false
}
});
});

T_options = {
chart: {
renderTo: 'T',
type: 'spline'
},
navigator:{
enabled:false
},
rangeSelector: {
buttons: [{
count: 1,
type: 'day',
text: 'Day'
}, {
count: 1,
type: 'week',
text: 'Week'
}, {
count: 1,
type: 'month',
text: 'Month'
}, {
count: 1,
type: 'year',
text: 'Year'
}, {
type: 'all',
text: 'All'
}],
selected: 0
},
title: {
text: 'Temperature Chart'
},
exporting: {
enabled: false
},
credits: {
enabled: false
},
yAxis: {
labels: {
x: -10,
y: 0
}
},
series: []
};

function draw_chart() {
storenum = $(".StoreNum").val();
$.getJSON("HisGraData", { storenum: storenum }, function (data) {
$.each(data, function (index, item) {
//Date Format
var date = new Date(parseInt((item.Time).replace("/Date(", "").replace(")/", "").split("+")[0]));

T1_data.push([Date.parse(date.toString()), item.T1]);
T2_data.push([Date.parse(date.toString()), item.T2]);
});

T_options.series.push({ name: 'T1', data: T1_data });
T_options.series.push({ name: 'T2', data: T2_data });

T_chart = new Highcharts.StockChart(T_options);
});
}

function redraw_chart() {
storenum = $(".StoreNum").val(); //dropdown list ,select one

while (T_chart.series.length > 0)
T_chart.series[0].remove();

T1_data = [];
T2_data = [];

$.getJSON("HisGraData", { storenum: storenum }, function (data) {
$.each(data, function (index, item) {
//DateFormat
var date = new Date(parseInt((item.Time).replace("/Date(", "").replace(")/", "").split("+")[0]));

T1_data.push([Date.parse(date.toString()), item.T1]);
T2_data.push([Date.parse(date.toString()), item.T2]);
});


T_chart.addSeries({ name: 'T1', data: T1_data });
T_chart.addSeries({ name: 'T2', data: T2_data });


T_chart.redraw();
});
}

这是我的捕获: My caputure

最佳答案

我怀疑您的问题出在删除系列的 while 循环中。

与其删除所有系列,然后调用 addSeries,为什么不直接使用 series.setData() 呢?

http://api.highcharts.com/highcharts#Series.setData()

尝试这样的事情:

function redraw_chart() {
storenum = $(".StoreNum").val(); //dropdown list ,select one

T1_data = [];
T2_data = [];

$.getJSON("HisGraData", { storenum: storenum }, function (data) {
$.each(data, function (index, item) {
//DateFormat
var date = new Date(parseInt((item.Time).replace("/Date(", "").replace(")/", "").split("+")[0]));

T1_data.push([Date.parse(date.toString()), item.T1]);
T2_data.push([Date.parse(date.toString()), item.T2]);
});

T_chart.series[0].setData(T1_Data, false);
T_chart.series[1].setData(T2_Data, true);
}

注意最后一个参数,它告诉它是否重绘。

关于javascript - Highcharts重绘前一行仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com