我在單個頁面上有堆疊水平條形圖,每個圖表都會根據用戶選擇的內容(下拉選擇)而變化。我有一個檢索資料的 ajax 呼叫,因此資料會根據用戶選擇而變化并且是動態的。我在清除舊資料時遇到問題。如果沒有資料,它應該顯示水平條形圖。但它顯示以前的資料。如果沒有資料,它不會變空。基本上,我只想在每次選擇后重新初始化圖表并從頭開始。我怎樣才能做到這一點?
<script type = "text/javascript" >
var series;
$("#sub_project3").change(function() {
$.ajax({
url: "<?php echo base_url("
Manage_procurement_plan / load_bar_chart ");?>",
type: "POST",
data: {
drop_value: $(this).val()
},
dataType: "text",
cache: false,
success: function(data) {
series = data;
var dom = document.getElementById("main");
var myChart = echarts.init(dom);
var app = {};
var option;
getBarGraph(series);
function getBarGraph(data) {
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
top: '3%',
},
grid: {
top: '28%',
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true,
},
xAxis: {
type: 'value',
},
yAxis: {
type: 'category',
data: ['Actual Avg', 'ADB Min Standard']
},
series: JSON.parse(data),
};
/*if (option && typeof option === 'object') {
myChart.setOption(option);
}*/
myChart.setOption(option);
}
}
});
});
</script>
uj5u.com熱心網友回復:
每次進行新選擇時,您都可以series
在將新資料推入其中之前“重新初始化”您的(使其成為空串列)。因此,如果沒有資料,series
則將保持為空。
然后,您可以使用 更新圖表notMerge = true
。根據echarts 檔案:
notMerge 可選。是否不與上一個選項合并。
false
默認情況下,表示合并,詳見組件合并模式。如果true
將洗掉所有當前組件并根據新選項創建新組件。
myChart.setOption(option, true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/473832.html
標籤:javascript 阿贾克斯 图表