Saya memiliki kebutuhan plot sejarah lari dari tugas di Highcharts. Itu perlu menunjukkan bahwa menjalankan riwayat tugas sebagai bilah horizontal. Ada persyaratan tambahan yang saya tambahkan sebagai pembaruan di bawah ini. Baru-baru ini saya mengetahui bahwa inverted
opsi tidak didukung di StockChart dan bahwa hanya navigator & rangeSelector yang tersedia di StockChart. Oleh karena itu saya menggunakan fungsi tersebut.
Jadi untuk mencapai persyaratan, saya membuat sesuatu yang mirip dengan contoh jsfiddle ini (ditemukan di suatu tempat saat menjelajah tidak ingat sumbernya) dan berakhir dengan tautan plunker ini dengan bantuan dari pertanyaan saya sebelumnya , terima kasih kepada Pawel Fus
Memperbarui pertanyaan untuk menghindari kebingungan
Persyaratan tambahan:
Tampilkan hanya tugas-tugas yang berjalan dalam rentang tanggal dan waktu tertentu . Jika ada terlalu banyak proses, seperti lebih dari 10 proses, maka perlu ada cara untuk menampilkan hanya 10 tugas yang terlihat dengan sumbu y yang dapat di-scroll untuk menampilkan tugas lain. tautan plunker ke masalah
Penjelasan masalah plunker diatas.
Jika Anda memeriksa tangkapan layar di bawah ini dari plunker di atas, rentang waktunya adalah dari 12/12/2014 09:32:26
hingga 12/12/2014 10:32:26
dan hanya ada 2 tugas yang telah berjalan m_ARRAYV_SALES_ZIG1_CALL2_VOD__C_OB
& m_ZIG2_HCP_MERGE_IB_CN
. Namun saya dapat melihat tugas lain di antaranya LILLY_C
yang bahkan tidak berjalan dalam rentang waktu ini. (Dalam data aktual, ada lebih dari 10 tugas yang mengacaukan bagan ini yang bahkan tidak termasuk dalam rentang waktu tanggal ini)
Juga jika Anda perhatikan di pojok kanan bawah waktu bergeser dari 09:38
ke 19:20
. 19:20
adalah waktu akhir untuk m_ZIG2_HCP_MERGE_IB_CN
tugas.
Di bawah ini adalah opsi bagan saya
var chart_options = {
chart: {
renderTo: 'container',
height: 600
},
title: {
},
credits: {
enabled: false
},
xAxis: {
type: 'datetime',
gridLineWidth: 1,
tickInterval: 1 * 3600 * 1000,
dateTimeLabelFormats: {
month: '%b %e, %Y'
}
},
yAxis: {
tickInterval: 1,
gridLineWidth: 1,
labels: {
formatter: function() {
if (tasks[this.value]) {
return tasks[this.value].name;
}
}
},
startOnTick: false,
endOnTick: false,
title: {
text: 'Task'
}
},
rangeSelector: {
selected: 0,
buttons: [ {
type: "minute",
count: 60,
text: "1h"
}, {
type: "minute",
count: 180,
text: "3h"
}, {
type: "minute",
count: 300,
text: "5h"
}],
inputDateFormat: '%m/%d/%Y %H:%M:%S',
inputEditDateFormat: '%m/%d/%Y %H:%M:%S',
inputBoxWidth: 120
},
navigator: {
enabled: false
},
legend: {
enabled: false
},
tooltip: {
shared: false,
formatter: function() {
var str = '';
str += 'Task: ' + this.series.name + '<br>';
str += 'From: ' + Highcharts.dateFormat('%m/%d/%y %H:%M', this.point.from) + '<br>';
str += 'To: ' + Highcharts.dateFormat('%m/%d/%y %H:%M', this.point.to) + '<br>';
return str;
}
},
plotOptions: {
line: {
lineWidth: 10,
marker: {
enabled: true
},
dataLabels: {
enabled: true,
align: 'left',
formatter: function() {
return this.point.options && this.point.options.label;
}
},
states:{
hover:{
lineWidth:10
}
}
},
series: {
cursor: 'pointer',
point: {
events: {
click: function () {
var query = '{ "task_id": "'+this.task_id+'","start_time": '+this.from+',"exclude_interval": '+opExcludeMinutes+',"size": 10 }';
$scope.taskName = this.series.name;
$scope.isTaskSelected = false;
$scope.operationalReportAgentTaskHistoryServiceRequest(query);
}
}
}
}
},
series: seriesData
};